//int animationIndex = 0; //int currenRow = 1; //ширина и высота одного кадра //double frameW = 299; //double frameH = 310; public BattleWind() { InitializeComponent(); //на паре gamePlayer.Open(new Uri("C:/Users/Admin/Desktop/FULL/Invasion of Gooks/Resources/Sound/rideOfTheValkyries.wav", UriKind.Absolute)); //дома //gamePlayer.Open(new Uri("C:/Users/Admin/Desktop/Invasion of Gooks_фреймы/Invasion of Gooks/Resources/Sound/rideOfTheValkyries.wav", UriKind.Absolute)); gamePlayer.Volume = 0.4; gamePlayer.Play(); //на паре gamePlayerPropellers.Open(new Uri("C:/Users/Admin/Desktop/FULL/Invasion of Gooks/Resources/Sound/propeller1.wav", UriKind.Absolute)); //дома //gamePlayerPropellers.Open(new Uri("C:/User/Admin/Desktop/Invasion of Gooks_фреймы/Invasion of Gooks/Resources/Sound/propeller1.wav", UriKind.Absolute)); gamePlayerPropellers.Volume = 0.3; gamePlayerPropellers.Play(); viewModel = (ViewModelClass)DataContext; Resources["ViewModel"] = viewModel; //================================================!!!================= viewModel.own = this; viewModel.warSky.ExplosionEvent += WarSky_ExplosionEvent; //полyчение изображения из ресyрсов окна ExplosionImage = (BitmapImage)Resources["Explosion.Image"]; ////подключаем прослyшкy к событию взрыва //viewModel.warSky.ExplosionEvent += WarSky_ExplosionEvent; //timerExplosions.Interval = TimeSpan.FromMilliseconds((double)Resources["Explosion.Interval"]); //timerExplosions.Tick += TimerExplosions_Tick; //список кадров, полyчаемый из ресyрсов rects = (Rect[])Resources["Explosion.Frames"]; //создаём массив для отдельных кадров //ImageFrames = new ImageSource[rects.Length]; //for (int i = 0; i < rects.Length; i++) //{ // ImageFrames[i] = ExplosionImage.Clone() //} //ExplosionCanvas.Children.Add(image = new Image() { Source = ExplosionImage, Clip = new RectangleGeometry(rects[0]) }); timerAnimation.Tick += AnimationTimer_Tick /* new EventHandler()*/; timerAnimation.Interval = TimeSpan.FromMilliseconds((double)Resources["Explosion.Interval"]);/* new TimeSpan(0, 0, 0, 0, 800);*/ timerAnimation.Start(); //timerExplosions.Start(); viewModel.KeyUser(KeyControl.Continue); }
private void Window_KeyDown(object sender, KeyEventArgs e) { switch (e.Key) { //если нажата стрелочка вверх, то коордианта вертолётика смещается вверх case Key.Up: viewModel.KeyUser(KeyControl.Up); break; //если нажата стрелочка вправо, то коордианта вертолётика смещается вправо case Key.Right: viewModel.KeyUser(KeyControl.Right); break; //если нажата стрелочка вниз, то коордианта вертолётика смещается вниз case Key.Down: viewModel.KeyUser(KeyControl.Down); break; //если нажата стрелочка влево, то коордианта вертолётика смещается влево case Key.Left: viewModel.KeyUser(KeyControl.Left); break; //если нажата W, то вертолётик смещается вверх-вправо case Key.W: viewModel.KeyUser(KeyControl.UpRight); break; //если нажата Q, то вертолётик смещается вверх-влево case Key.Q: viewModel.KeyUser(KeyControl.UpLeft); break; //если нажата S, то вертолётик смещается вниз-вправо case Key.S: viewModel.KeyUser(KeyControl.DownRight); break; //если нажата A, то вертолётик смещается вниз-влево case Key.A: viewModel.KeyUser(KeyControl.DownLeft); break; //если нажата клавиша Escape, то вызывается меню паузы case Key.Escape: viewModel.KeyUser(KeyControl.Pause); PauseMenu pause = new PauseMenu(/*this*/); if (pause.ShowDialog() == true) { } else { viewModel.KeyUser(KeyControl.Continue); } break; case Key.Space: viewModel.KeyUser(KeyControl.Continue); break; //если нажата клавиша Z, то применяется способность и вызывается её анимация case Key.Z: viewModel.KeyUser(KeyControl.Pif); break; //если нажата клавиша X, то применяется способность и вызывается её анимация case Key.X: viewModel.KeyUser(KeyControl.Paf); break; //если нажата клавиша C, то применяется способность и вызывается её анимация case Key.C: viewModel.KeyUser(KeyControl.Napalm); break; } }