private void MainGFX_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (Keyboard.Modifiers == ModifierKeys.None) { Visual v = MainGFX.GetObjectXY((Point)e.GetPosition(MainGFX)) as Visual; if (v != null) { var res = from s in ThisLevel.Sprites where s.ContainsVisual(v) select s; try { var spriteSel = res.First(); lstSprites.SelectedItem = spriteSel; foreach (var sprite in ThisLevel.Sprites) { if (sprite != null) { sprite.Highlight = false; } } spriteSel.Highlight = true; } catch (Exception) { } } } }
private void lstSprites_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { SpriteObject obj = (lstSprites.SelectedItem as SpriteObject); if (obj != null) { // Space not possible switch (e.Key) { case Key.Delete: ThisLevel.Sprites.Remove(obj); MainGFX.RemoveObject(obj); lstSprites.Items.Refresh(); break; case Key.Enter: obj.Animated = !obj.Animated; lstSprites.Items.Refresh(); break; default: break; } } }
private void cmdAddSprite_Click(object sender, RoutedEventArgs e) { var sobj = Activator.CreateInstance(dbNewObj.SelectedItem as Type) as SpriteObject; sobj.Name = txtSpriteName.Text; sobj.Position = new Vector(GameSlider.Value, 100); //sobj.CenterOfMass = new Vector(0, 0); sobj.IsMovable = false; sobj.CanCollide = true; sobj.IsObstacle = false; //ThisLevel.selectImage(sobj); int idx = ThisLevel.Sprites.IndexOf(lstSprites.SelectedItem as SpriteObject); if ((idx >= 0) && (idx < ThisLevel.Sprites.Count - 1)) { idx++; ThisLevel.Sprites.Insert(idx, sobj); } else { ThisLevel.Sprites.Add(sobj); } MainGFX.AddObject(sobj); lstSprites.Items.Refresh(); txtSpriteName.Text = ""; }
private void cmdTest_Click(object sender, RoutedEventArgs e) { // Objekte erstellen IGFXObject obj1 = new SpriteObject("Test Sprite"); //IGFXObject obj2 = new CarObject("Test Auto"); // erstellt ParticleSystem. passt nicht zu neuer Baumstruktur IGFXObject obj2 = new SpriteObjectElastic("Fussball"); IGFXObjComposition comp2 = new GFXComposition("Blumenbeet"); comp2.AddObject(new SpriteObject("Sehr grüne Pflanze")); comp2.AddObject(new SpriteObject("Maiglöckchen")); IGFXObjComposition comp1 = new GFXComposition("Zusammengebautes Object"); comp1.AddObject(new SpriteObject("Teil 1")); comp1.AddObject(new SpriteObject("Teil 2")); comp1.AddObject(comp2); comp1.AddObject(new SpriteObject("Teil 3")); MainGFX.AddObject(obj1); MainGFX.AddObject(obj2); MainGFX.AddObject(comp1); // Objekt-Baum listen lstTree.ItemsSource = MainGFX.ToList(); }
private void GameMainWindow_Loaded(object sender, RoutedEventArgs e) { // After everything has loaded, rendered and so on Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(() => { //System.Windows.Forms.MessageBox.Show("dispatched"); MainGFX.Start(); GameStarting(); })); }
private void Window_Loaded(object sender, RoutedEventArgs e) { // After everything has loaded, rendered and so on Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action(() => { lstSprites.ItemsSource = ThisLevel.Sprites; Scroller = new GameScroller(GameSlider, MainGFX, GameWrapper); MainGFX.Start(); })); }
private void cmdSetLevelBkg_Click(object sender, RoutedEventArgs e) { MainGFX.RemoveObject(ThisLevel.LevelBkg); ThisLevel.LevelBkg = new SpriteObject(); ThisLevel.LevelBkg.Name = "LevelBkg"; ThisLevel.LevelBkg.CenterOfMass = new Vector(0, 0); ThisLevel.LevelBkg.IsMovable = false; ThisLevel.LevelBkg.IsObstacle = false; ThisLevel.selectImage(ThisLevel.LevelBkg); (ThisLevel.LevelBkg as SpriteObject).ZoomPreserveAspectRatio(height: GameWrapper.Height); (ThisLevel.Background as SpriteObject).ScrollScaling = (ThisLevel.Background.SizeV.X - (GameWrapper.Width / 2)) / ThisLevel.LevelBkg.SizeV.X; MainGFX.AddObject(ThisLevel.LevelBkg); MainGFX.Width = ThisLevel.LevelBkg.SizeV.X; }
private void cmdSetParBkg_Click(object sender, RoutedEventArgs e) { //MainGFX.Height = 50; //GameWrapper.Width = 50; MainGFX.RemoveObject(ThisLevel.Background); ThisLevel.Background = new SpriteObject(); ThisLevel.Background.Name = "Background"; ThisLevel.Background.CenterOfMass = new Vector(0, 0); ThisLevel.Background.IsMovable = false; ThisLevel.Background.IsObstacle = false; ThisLevel.selectImage(ThisLevel.Background); (ThisLevel.Background as SpriteObject).ZoomPreserveAspectRatio(height: GameWrapper.Height); MainGFX.AddObject(ThisLevel.Background); MainGFX.Width = ThisLevel.Background.SizeV.X; // todo: eigentlich in setlvlbackg //MainGFX.Width = thisLevel.Background.SizeV.X; // MainGFX.Height = 500; }
private async void MetroWindow_Closing_Async(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = !_shutdown; if (_shutdown) { return; } var mySettings = new MetroDialogSettings() { AffirmativeButtonText = "Quit", NegativeButtonText = "Cancel", AnimateShow = true, AnimateHide = false }; var result = await this.ShowMessageAsync("Quit", "Close Game?", MessageDialogStyle.AffirmativeAndNegative, mySettings); bool affirm = result == MessageDialogResult.Affirmative; if (affirm) { // Close Game // Todo: save score // Todo: save score on dispose } _shutdown = affirm; if (_shutdown) { MainGFX.Dispose(); //this.Close(); System.Windows.Application.Current.Shutdown(); } }
private async void MetroWindow_Closing_Async(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = !_shutdown; if (_shutdown) { return; } var mySettings = new MetroDialogSettings() { AffirmativeButtonText = "Save & Quit", NegativeButtonText = "Quit", AnimateShow = true, AnimateHide = false }; var result = await this.ShowMessageAsync("Quit Gamedesigner?", "Do you want to save changes?", MessageDialogStyle.AffirmativeAndNegative, mySettings); bool affirm = result == MessageDialogResult.Affirmative; if (affirm) { cmdSaveLevel_Click(this, new RoutedEventArgs()); } _shutdown = true; if (_shutdown) { MainGFX.Dispose(); System.Windows.Application.Current.Shutdown(); //this.Close(); } }
private void GameWindow_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e) { MainGFX.RaiseWindowKeyUp(this, e); }
private void DesignerWindow_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { MainGFX.RaiseWindowKeyDown(this, e); }