我的第一个等距游戏有问题。我不知道该如何对我的球员靠近墙边。在这一刻,玩家可能会在绿色区域移动。第一个等距游戏
我的地图:
int[,] map = new int[,]
{
{1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1}
};
变量:
int TileWidth = 50;
int TileHeight = 50;
int posX = 2; // map X position
int posY = 2; // map Y position
float playerX = 2 * 50; // player X position
float playerY = 2 * 50; // player Y position
检测墙:
public bool detectSolidTile(int x, int y)
{
if (map[y, x] == 1) return true; else return false;
}
Movemet:
posX = (int)(Math.Floor((playerX)/50));
posY = (int)(Math.Floor(playerY/50));
(...)
if (slide == 1 && !detectSolidTile(posX + 1, posY))
{
playerX++;
}
if (slide == 2 && !detectSolidTile(posX - 1, posY))
{
playerX--;
}
图片 - >http://s16.postimg.org/cxkfomemd/tiles.jpg
我需要什么改进,以便能够从墙上搬到墙上?
最好的问候,Krzysiek
更改1到0帮助,但只有右墙。玩家只有在绿色区域:(移动 IMG http://i.stack.imgur.com/k6xG8.jpg 编辑:我做:DI改变 如果(幻灯片== 2 && detectSolidTile(POSX - 1, posY)) 到 if(slide == 2 && detectSolidTile(posX,posY)) – Krzysiek
对y使用相同的过程可以使它向上和向下移动。 –