在2D矩阵数组中移动精灵 - JavaScript

时间:2014-04-21 12:03:03

标签: javascript arrays matrix 2d maze

我创建了一个包含10 x 10迷宫的2D数组。我现在遇到的问题是如何在迷宫jpg上移动精灵(当它实际上在桌子上工作时)。

如何将精灵移动一个特定的距离,使它看起来像是移动到下一个方格?

我有他们的键盘功能,并认为我需要这个代码。但我对将sprite移动到特定方块的逻辑感到困惑。

PlayerX = 1   
PlayerY = 1             

Up =   MazeArray[PlayerX, PlayerY - 1];

Down = MazeArray[PlayerX, PlayerY + 1];

Left = MazeArray[PlayerX - 1, PlayerY];

Right= MazeArray[PlayerX + 1, PlayerY];

1 个答案:

答案 0 :(得分:1)

你的画布应该包含整个迷宫和你的角色精灵。

你的精灵是一个半径为10的圆圈(所以它是20px乘20px)但是#34;正方形"你的迷宫只有6px乘6px(因为你的画布是60px乘60px,你说迷宫是10x10)。

为了使它看起来像是移动了​​一个方格,你需要让它首先适合一个单元格。 使画布更大(如果你想保持10px半径,则200px乘200px)。

然后你可以在绘制精灵时指定它的位置:

PlayerX=4; // 0 <= PlayerX < 10
PlayerY=5; // 0 <= PlayerY < 10
MyCanvas.arc(10+PlayerX*20, 10+PlayerY*20, 10, 0, 2 * Math.PI, true);