示例#1
0
 public bool CheckCollision()
 {
     if (curFacing == FaceDirection.Up)
     {
         if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD(location.X, (short)(location.Y - 1))) == '#')
         {
             return(true);
         }
         else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y - 1, location.X].AsciiChar))
         {
             return(true);
         }
     }
     else if (curFacing == FaceDirection.Down)
     {
         if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD(location.X, (short)(location.Y + 1))) == '#')
         {
             return(true);
         }
         else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y + 1, location.X].AsciiChar))
         {
             return(true);
         }
     }
     else if (curFacing == FaceDirection.Left)
     {
         if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD((short)(location.X - 1), location.Y)) == '#')
         {
             return(true);
         }
         else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y, location.X - 1].AsciiChar))
         {
             return(true);
         }
     }
     else if (curFacing == FaceDirection.Right)
     {
         if (EngineFunctions.GetCharacterAtPosition(new EngineFunctions.COORD((short)(location.X + 1), location.Y)) == '#')
         {
             return(true);
         }
         else if (EngineFunctions.COLLISION_CHARS.Contains(EngineFunctions.screenBufferArray[location.Y, location.X + 1].AsciiChar))
         {
             return(true);
         }
     }
     return(false);
 }