예제 #1
0
        //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);
        }
예제 #2
0
        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;
            }
        }