コード例 #1
0
ファイル: HumanPlayer.cs プロジェクト: sk-zk/NoisEvader
        private Vector2 DoMouseMovement(ArenaCamera camera, bool confineCursorToScreen)
        {
            var newPos = new Vector2(inputHelper.MouseState.X, inputHelper.MouseState.Y);

            if (confineCursorToScreen)
            {
                newPos.X = MathHelper.Clamp(newPos.X, 0, NoisEvader.ScreenBounds.Width);
                newPos.Y = MathHelper.Clamp(newPos.Y, 0, NoisEvader.ScreenBounds.Height);
            }

            return(camera.MouseToWorld(newPos));
        }
コード例 #2
0
ファイル: MenuScene.cs プロジェクト: sk-zk/NoisEvader
        public MenuScene()
        {
            Camera = new ArenaCamera();

            arena = new ArenaCircle();
            arena.Circle.BorderColor   = Color.CornflowerBlue;
            arena.Circle.FillColor     = Color.White;
            arena.Circle.LineThickness = 3;
            arena.GlowEnabled          = true;
            arena.Hitbox.Inverted      = true;

            rings = new OuterRings(new Color(0x37, 0x71, 0xc8), arena.Circle);
        }
コード例 #3
0
ファイル: HumanPlayer.cs プロジェクト: sk-zk/NoisEvader
        protected override void UpdatePosition(LevelTime levelTime, CircleSprite arenaCircle, ArenaCamera camera,
                                               bool confineCursorToScreen)
        {
            // TODO: Allow rebinding
            if (HasKeyboardMovement())
            {
                Center = DoKeyboardMovement(levelTime, inputHelper.KeyboardState);
            }
            else if (HasMouseMovement())
            {
                Center = DoMouseMovement(camera, confineCursorToScreen);
            }

            oobShadow.Center = camera.MouseToWorld(new Vector2(inputHelper.MouseState.X, inputHelper.MouseState.Y));

            KeepPlayerInbounds(arenaCircle, Center);
            SetCenters(Center);
        }