Exemplo n.º 1
0
        private void TransitionToMenu(object sender)
        {
            if (game.CurrentGameState == Game1.GameState.NotStarted) return;
            game.ResetGame();
            float distance = -700;
            float time = 1.0f;

            mainStoryboard.Stop();
            mainStoryboard.Clear();
            mainStoryboard.OnCompleted = null;

            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.GameTitle, time, new Vector2(game.GameTitle.Left, game.GameTitle.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.Panel, time, new Vector2(game.Panel.Left, game.Panel.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextPlayerName, time, new Vector2(game.TextPlayerName.Left, game.TextPlayerName.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextRoomID, time, new Vector2(game.TextRoomID.Left, game.TextRoomID.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextBoxRoom, time, new Vector2(game.TextBoxRoom.Left, game.TextBoxRoom.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextBoxName, time, new Vector2(game.TextBoxName.Left, game.TextBoxName.Top - distance), false));

            Animation anim = new TranslationAnimation(mainStoryboard, game.btnPlaySingle, time, new Vector2(game.btnPlaySingle.Left, game.btnPlaySingle.Top + distance), false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);

            mainStoryboard.Start();
        }
Exemplo n.º 2
0
        private void TransitionToMenu(object sender)
        {
            if (game.CurrentGameState == Game1.GameState.NotStarted) return;
            game.ResetGame();

            mainStoryboard.Stop();
            mainStoryboard.Clear();
            mainStoryboard.OnCompleted = null;

            float distance = -700;
            Vector2 scale = new Vector2(0.9f, 0.9f);
            Vector2 logoDistance = new Vector2(200, 10);
            Vector2 fromLogo = new Vector2(game.GameTitle.Left, game.GameTitle.Top);
            Vector2 toLogo = Vector2.Add(fromLogo, logoDistance);
            float time = 1.0f;

            Animation anim;
            anim = new TranslationAnimation(mainStoryboard, game.GameTitle, time, toLogo, false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.Panel, time, new Vector2(game.Panel.Left, game.Panel.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextPlayerName, time, new Vector2(game.TextPlayerName.Left, game.TextPlayerName.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextRoomID, time, new Vector2(game.TextRoomID.Left, game.TextRoomID.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextBoxRoom, time, new Vector2(game.TextBoxRoom.Left, game.TextBoxRoom.Top - distance), false));
            mainStoryboard.AddAnimation(new TranslationAnimation(mainStoryboard, game.TextBoxName, time, new Vector2(game.TextBoxName.Left, game.TextBoxName.Top - distance), false));

            anim = new TranslationAnimation(mainStoryboard, game.btnPlaySingle, time, new Vector2(game.btnPlaySingle.Left, game.btnPlaySingle.Top + distance), false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);

            anim = new TranslationAnimation(mainStoryboard, game.btnPlayMulti, time, new Vector2(game.btnPlayMulti.Left, game.btnPlayMulti.Top + distance), false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);

            anim = new TranslationAnimation(mainStoryboard, game.btnSetting, time, new Vector2(game.btnSetting.Left, game.btnSetting.Top + distance), false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);

            anim = new TranslationAnimation(mainStoryboard, game.btnExit, time, new Vector2(game.btnExit.Left, game.btnExit.Top + 230), false);
            anim.SetGraphFunction(new LinearGraphFunction());
            mainStoryboard.AddAnimation(anim);

            mainStoryboard.Start();
        }
Exemplo n.º 3
0
        private void DuplicateCell(int i, int j, int x, int y)
        {
            visualState = VisualState.Transitioning;
            Gems[x, y] = new Gem(Gems[i, j]);

            Gems[x, y].i = x;
            Gems[x, y].j = y;

            this.gems.AddChild(Gems[x, y]);
            if (Gems[x, y].team == Gem.Team.Blue)
            {
                ScoreBlue++;
            }
            else { ScoreRed++; }

            Storyboard sb = new Storyboard();
            Animation anim = new TranslationAnimation(sb, Gems[x, y].sprite, GameSettings.GemTranslationDuration, GetGemVisualPosition(x, y), false);
            sb.AddAnimation(anim);
            sb.argument = Gems[x, y];
            sb.Start();
            sb.OnCompleted += OnMoveCellCompleted;
        }
Exemplo n.º 4
0
        private void MoveCell(int i, int j, int x, int y)
        {
            visualState = VisualState.Transitioning;
            var toMove = Gems[i,j];
            toMove.i = x;
            toMove.j = y;

            Gems[i, j] = null;
            Gems[x, y] = toMove;

            Storyboard sb = new Storyboard();
            Animation anim = new TranslationAnimation(sb, toMove.sprite, GameSettings.GemTranslationDuration, GetGemVisualPosition(x, y), false);
            sb.AddAnimation(anim);
            sb.argument = Gems[x, y];
            sb.Start();
            sb.OnCompleted += OnMoveCellCompleted;
        }
Exemplo n.º 5
0
        public void OvertakeEnemies(Gem gem)
        {
            visualState = VisualState.Transitioning;
            List<Tile> adjacents = GetAdjacentCell(gem);
            if (adjacents.Count == 0)
            {
                OnOvertakeCompleted(this, null);
                return;
            }

            Storyboard sb = new Storyboard();
            List<Gem> toFades = new List<Gem>();
            foreach (Tile adjacent in adjacents)
            {
                Gem toOvertake = new Gem(gem);
                toOvertake.i = adjacent.i;
                toOvertake.j = adjacent.j;

                gems.AddChild(toOvertake);

                Gem toFade = Gems[adjacent.i, adjacent.j];
                toFades.Add(toFade);

                Gems[toOvertake.i, toOvertake.j] = toOvertake;

                Animation anim = new TranslationAnimation(sb, toOvertake.sprite, GameSettings.GemTranslationDuration, GetGemVisualPosition(toOvertake.i, toOvertake.j), false);
                sb.AddAnimation(anim);

                anim = new ColorAnimation(sb, toFade.sprite, GameSettings.GemTranslationDuration, new Vector4(0,0,0,0), false);
                sb.AddAnimation(anim);
            }

            sb.argument = toFades;
            sb.Start();
            sb.OnCompleted += OnOvertakeCompleted;
        }