예제 #1
0
        public override void Init()
        {
            base.Init();

            AddCurtain();

            Player = new Player(Context, SkeletonPlayerAssignment.LeftSkeleton);
            Player.DrawHands = true;

            AddEntity(Player);

            var posX = 400;
            var posY = 235;

            var width = Assets.HighscoreBoard.Width / 2;
            var height = Assets.HighscoreBoard.Height / 2;

            var board = new SimpleGraphic(Assets.HighscoreBoard, (MainGame.Width / 2) - width / 2, (MainGame.Height / 2) - (height / 2) - 50, width, height);
            AddEntity(board);

            foreach (Score s in Scores.Take(3)) {
                var hi = new HighscoreItem(posX, posY, s);
                AddEntity(hi);

                posY += 145;
            }

            var menuSign = new MenuItem(Assets.SignMenu, (MainGame.Width / 2) - 100, (MainGame.Height) - 125, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); });
            AddEntity(menuSign);
        }
예제 #2
0
        public void Message()
        {
            var posMenu = new Point(300, (MainGame.Height / 2) - 250);
            var posResume = new Point(MainGame.Width - 600, (MainGame.Height / 2) - 250);

            var mi = new MenuItem(Assets.SignMenu, posMenu.X, posMenu.Y, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); });
            AddEntity(mi);

            mi = new MenuItem(Assets.SignResume, posResume.X, posMenu.Y, delegate() { Manager.RemoveScreen(this); });
            AddEntity(mi);
        }
예제 #3
0
        public void EndGame(Player winner)
        {
            Manager.FadeInSong(Assets.WinSong, false, 0.8f);

            Actions.AddAction(new EndEquationInput(Input), true);

            foreach (DragableNumber num in Entities.Where(ent => ent.CollisionType == "number")) {
                Actions.AddAction(new TweenPositionTo(num, new Vector2(1300, -200), 1f, Linear.EaseIn), false);
            }

            for (int i = 0; i < 4; i++) {
                var hand = i < 2 ? winner.LeftHand : winner.RightHand;

                var balloon = new Balloon(100 * i, 0, 11);
                AddEntity(balloon);

                balloon.AttachTo(hand);
            }

            var posMenu = new Vector2(300, (MainGame.Height / 2) - 250);
            var menu = new MenuItem(Assets.SignMenu, -100, -300, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); });
            menu.Actions.AddAction(new TweenPositionTo(menu, posMenu, 2f, Back.EaseOut), true);
            AddEntity(menu);

            var posRestart = new Vector2(MainGame.Width - 600, (MainGame.Height / 2) - 250);

            var restart = new MenuItem(Assets.MenuSignRestart, MainGame.Width + 100, -300, delegate() { Manager.SwitchScreen(new VersusPlayerScreen(Context)); });
            restart.Actions.AddAction(new TweenPositionTo(restart, posRestart, 2f, Back.EaseOut), true);
            AddEntity(restart);
        }
예제 #4
0
        private void addButtons()
        {
            var posMenu = new Vector2(300, (MainGame.Height / 2) - 250);
            var menu = new MenuItem(Assets.SignMenu, -100, -300, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); Manager.FadeInSong(Assets.MenuSong, true, 0.5f); });
            menu.Actions.AddAction(new TweenPositionTo(menu, posMenu, 2f, Back.EaseOut), true);
            AddEntity(menu);

            var posRestart = new Vector2(MainGame.Width - 600, (MainGame.Height / 2) - 250);

            var restart = new MenuItem(Assets.MenuSignRestart, MainGame.Width + 100, -300, delegate() { Manager.SwitchScreen(new CoopPlayerScreen(Context)); Manager.FadeInSong(Assets.GameSong, true, 0.2f); });
            restart.Actions.AddAction(new TweenPositionTo(restart, posRestart, 2f, Back.EaseOut), true);
            AddEntity(restart);

            var posHighscore = new Vector2(MainGame.Width - 250, (MainGame.Height / 2) - 200);

            var loadFrom = MainGame.CoopHighscoreDirectory;
            if (this.GetType() == typeof(SinglePlayerScreen))
                loadFrom = MainGame.SingleHighscoreDirectory;

            var highscore = new MenuItem(Assets.SignHighscore, MainGame.Width + 100, -300, delegate() { Manager.SwitchScreen(new HighscoreScreen(Context, loadFrom)); Manager.FadeInSong(Assets.MenuSong, true, 0.2f); });
            highscore.Actions.AddAction(new TweenPositionTo(highscore, posHighscore, 2f, Back.EaseOut), true);
            AddEntity(highscore);
        }
예제 #5
0
        public void LoadMenu(Menu menu)
        {
            for (int i = 0; i < menu.Items.Count; i++) {
                var mi = menu.Items[i];

                switch (i) {
                    case 0:
                        mi.Position = new Vector2((int)topLeftPosition.X - 600, (int)topLeftPosition.Y - 600);
                        mi.RenderBalloons = true;

                        if (i + 1 <= menu.Items.Count - 1)
                            mi.RenderRopes = true;

                        TopLeft = mi;
                        TopLeft.Actions.AddAction(new TweenPositionTo(mi, topLeftPosition, 3f, Back.EaseOut), true);

                        break;
                    case 1:
                        mi.Position = new Vector2((int)bottomLeftPosition.X - 600, (int)bottomLeftPosition.Y + 600);
                        BottomLeft = mi;
                        BottomLeft.Actions.AddAction(new TweenPositionTo(mi, bottomLeftPosition, 3f, Back.EaseOut), true);

                        break;
                    case 2:
                        mi.Position = new Vector2((int)topRightPosition.X + 600, (int)topRightPosition.Y - 600);
                        mi.RenderBalloons = true;

                        if (i + 1 <= menu.Items.Count - 1)
                            mi.RenderRopes = true;

                        TopRight = mi;
                        TopRight.Actions.AddAction(new TweenPositionTo(mi, topRightPosition, 3f, Back.EaseOut), true);

                        break;
                    case 3:
                        mi.Position = new Vector2((int)bottomRightPosition.X + 600, (int)bottomRightPosition.Y + 600);
                        BottomRight = mi;
                        BottomRight.Actions.AddAction(new TweenPositionTo(mi, bottomRightPosition, 3f, Back.EaseOut), true);

                        break;
                    default:
                        throw new ArgumentException("No more than 4 menu items allowed!");
                }
            }

            AddEntity(menu);
        }
예제 #6
0
        public void LoadOperatorMessageMenu()
        {
            RemoveEntity(MainMenu);

            var OperatorMessage = new Menu();

            MenuItem Ok = new MenuItem();
            var message = new MenuImage(Assets.MenuMessageNoOperatorChecked, 250, 100, new Point(825, 345), OnClick_Nothing);
            var background = new MenuImage(Assets.MenuPauseBackground, 0, 0, new Point(MainGame.Width, MainGame.Height), OnClick_Nothing);

            AddEntity(background);
            AddEntity(message);
            //Unschön, wie gehts anders?

            Ok = new MenuItem(Assets.MenuSignOk, 550, 500, delegate() { RemoveEntity(Ok); RemoveEntity(background); RemoveEntity(message); });
            AddEntity(Ok);

            LoadMenu(OperatorMessage);
        }
예제 #7
0
파일: Menu.cs 프로젝트: ravensinth/CSTouch
 public void AddItem(MenuItem item)
 {
     item.Menu = this;
     Items.Add(item);
 }
예제 #8
0
        public void Pause()
        {
            State = PauseState.Default;

            Player = new Player(Context, SkeletonPlayerAssignment.LeftSkeleton);
            Player.DrawHands = true;

            AddEntity(Player);

            var posMenu = new Point(300, (MainGame.Height / 2) - 250);
            var posResume = new Point(MainGame.Width - 600, (MainGame.Height / 2) - 250);

            var mi = new MenuItem(Assets.SignMenu, posMenu.X, posMenu.Y, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); });
            AddEntity(mi);

            mi = new MenuItem(Assets.SignResume, posResume.X, posMenu.Y, delegate() { Manager.RemoveScreen(this); });
            AddEntity(mi);
        }
예제 #9
0
        public void WaitForPlayerCount(int count)
        {
            State = PauseState.WaitingForPlayers;

            Player = new Player(Context, SkeletonPlayerAssignment.LeftSkeleton);
            Player.DrawHands = true;

            AddEntity(Player);

            var mi = new MenuItem(Assets.SignMenu, MainGame.Width - 300, (MainGame.Height / 2) - 100, delegate() { Manager.SwitchScreen(new MenuScreen(Context)); });
            AddEntity(mi);

            Actions.AddAction(new WaitForPlayerCount(count, Context), true);
            Actions.AddAction(new CallFunction(delegate() { State = PauseState.Countdown; }), true);
        }