コード例 #1
0
ファイル: GameObj.cs プロジェクト: skatemore/PassTheZombies
        protected GameObj(Position position, char body, ConsoleColor color)
        {
            this.Color = color;
            this.position = position;
            this.body = body;

            this.IsDestroyed = false;
        }
コード例 #2
0
        public CollisionData(Position collisionForceDirection, List<string> hitObjectsCollisionGroupStrings)
        {
            this.CollisionForceDirection = collisionForceDirection;

            this.hitObjectsCollisionGroupStrings = new List<string>();

            foreach (var str in hitObjectsCollisionGroupStrings)
            {
                this.hitObjectsCollisionGroupStrings.Add(str);
            }
        }
コード例 #3
0
ファイル: Human.cs プロジェクト: skatemore/PassTheZombies
 public void MoveUp()
 {
     this.Memento = this.Position;
     this.Position.Y--;
 }
コード例 #4
0
ファイル: Human.cs プロジェクト: skatemore/PassTheZombies
 public void MoveRight()
 {
     this.Memento = this.Position;
     this.Position.X++;
 }
コード例 #5
0
ファイル: Human.cs プロジェクト: skatemore/PassTheZombies
 public void MoveLeft()
 {
     this.Memento = this.Position;
     this.Position.X--;
 }
コード例 #6
0
ファイル: Human.cs プロジェクト: skatemore/PassTheZombies
 public void MoveDown()
 {
     this.Memento = this.Position;
     this.Position.Y++;
 }
コード例 #7
0
ファイル: Human.cs プロジェクト: skatemore/PassTheZombies
 public Human(Position position, char body, int health, ConsoleColor color)
     : base(position, body, color)
 {
     Health = health;
 }
コード例 #8
0
ファイル: MedicKit.cs プロジェクト: skatemore/PassTheZombies
 public MedicKit(Position topLeft)
     : base(topLeft, 'H', ConsoleColor.Red)
 {
 }
コード例 #9
0
ファイル: Item.cs プロジェクト: skatemore/PassTheZombies
 public Item(Position topLeft, char body, ConsoleColor color)
     : base(topLeft, body, color)
 {
 }
コード例 #10
0
 public void ClearTrail(Position position)
 {
     Console.SetCursorPosition(position.X, position.Y);
     Console.Write(' ');
 }
コード例 #11
0
ファイル: Gate.cs プロジェクト: skatemore/PassTheZombies
 public Gate(Position position)
     : base(position, 'G', ConsoleColor.Green)
 {
 }
コード例 #12
0
ファイル: Wall.cs プロジェクト: skatemore/PassTheZombies
 public Wall(Position topLeft)
     : base(topLeft, '█', ConsoleColor.Blue)
 {
 }
コード例 #13
0
        private static void HandleMovingWithStaticCollisions(List<Zombie> movingObjects, List<GameObj> staticObjects)
        {
            foreach (var movingObject in movingObjects)
            {
                int verticalIndex = VerticalCollisionIndex(movingObject, staticObjects);
                int horizontalIndex = HorizontalCollisionIndex(movingObject, staticObjects);

                Position movingCollisionForceDirection = new Position(0, 0);

                if (verticalIndex != -1)
                {
                    movingCollisionForceDirection.Y = -movingObject.Speed.Y;
                    staticObjects[verticalIndex].RespondToCollision(
                        new CollisionData(new Position(movingObject.Speed.Y, 0),
                            movingObject.GetCollisionGroupString())
                            );
                }

                if (horizontalIndex != -1)
                {
                    movingCollisionForceDirection.X = -movingObject.Speed.X;
                    staticObjects[horizontalIndex].RespondToCollision(
                        new CollisionData(new Position(0, movingObject.Speed.X),
                            movingObject.GetCollisionGroupString())
                            );
                }

                int diagonalIndex = -1;
                if (horizontalIndex == -1 && verticalIndex == -1)
                {
                    diagonalIndex = DiagonalCollisionIndex(movingObject, staticObjects);
                    if (diagonalIndex != -1)
                    {
                        movingCollisionForceDirection.Y = -movingObject.Speed.Y;
                        movingCollisionForceDirection.X = -movingObject.Speed.X;

                        staticObjects[diagonalIndex].RespondToCollision(
                        new CollisionData(new Position(movingObject.Speed.Y, 0),
                            movingObject.GetCollisionGroupString())
                            );
                    }
                }

                List<string> hitByMovingCollisionGroups = new List<string>();

                if (verticalIndex != -1)
                {
                    hitByMovingCollisionGroups.Add(staticObjects[verticalIndex].GetCollisionGroupString());
                }

                if (horizontalIndex != -1)
                {
                    hitByMovingCollisionGroups.Add(staticObjects[horizontalIndex].GetCollisionGroupString());
                }

                if (diagonalIndex != -1)
                {
                    hitByMovingCollisionGroups.Add(staticObjects[diagonalIndex].GetCollisionGroupString());
                }

                if (verticalIndex != -1 || horizontalIndex != -1 || diagonalIndex != -1)
                {
                    movingObject.RespondToCollision(
                        new CollisionData(movingCollisionForceDirection,
                            hitByMovingCollisionGroups)
                            );
                }
            }
        }
コード例 #14
0
 public CollisionData(Position collisionForceDirection, string objectCollisionGroupString)
 {
     this.CollisionForceDirection = collisionForceDirection;
     this.hitObjectsCollisionGroupStrings = new List<string>();
     this.hitObjectsCollisionGroupStrings.Add(objectCollisionGroupString);
 }
コード例 #15
0
ファイル: Zombie.cs プロジェクト: skatemore/PassTheZombies
 public Zombie(Position topLeft, int health)
     : base(topLeft, '#', health, ConsoleColor.DarkYellow)
 {
 }
コード例 #16
0
ファイル: Key.cs プロジェクト: skatemore/PassTheZombies
 public Key(Position topLeft)
     : base(topLeft, 'K', ConsoleColor.Yellow)
 {
 }
コード例 #17
0
ファイル: Obstacle.cs プロジェクト: skatemore/PassTheZombies
 public Obstacle(Position position, char body, ConsoleColor color)
     : base(position, body, color)
 {
 }
コード例 #18
0
ファイル: Player.cs プロジェクト: skatemore/PassTheZombies
 private Player(Position position, int health)
     : base(position, 'o', health, ConsoleColor.Cyan)
 {
 }