Esempio n. 1
0
        public override void Step()
        {
            switch (_keyEvent?.Invoke())
            {
            case Action.LeftMove:

                FakeShift(NextPosition, -1, 0);

                if (!NextPosition.Overlaps(_game.Borders))
                {
                    Move();
                }
                break;

            case Action.RightMove:

                FakeShift(NextPosition, 1, 0);

                if (!NextPosition.Overlaps(_game.Borders))
                {
                    Move();
                }
                break;

            case Action.UpMove:

                FakeShift(NextPosition, 0, -1);

                if (!NextPosition.Overlaps(_game.Borders))
                {
                    Move();
                }
                break;

            case Action.DownMove:

                FakeShift(NextPosition, 0, 1);

                if (!NextPosition.Overlaps(_game.Borders))
                {
                    Move();
                }
                break;

            case Action.Shooting:
                _game.AddObject(SpaceObject.ShotLeft);
                //_game.AddObject(SpaceObject.ShotRight);
                break;

            case Action.NoAction:
                break;

            default:
                break;
            }

            NextPosition.Clear();
        }
Esempio n. 2
0
        public override void Step()
        {
            //Y -= _step;

            foreach (var item in Position)
            {
                int y = item.Y;
                NextPosition.Add(new Coordinate(item.X, y - _step));
            }

            Position.Clear();
            Position.UnionWith(NextPosition);
            NextPosition.Clear();
        }