我的第一個等距遊戲有問題。我不知道該如何對我的球員靠近牆邊。在這一刻,玩家可能會在綠色區域移動。第一個等距遊戲
我的地圖:
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使用相同的過程可以使它向上和向下移動。 –