我正在创建一个迷宫游戏,到目前为止已经渲染了一个玩家将移动并加载迷宫jpeg的圆圈。 当两个重叠时,圆圈被JPEG隐藏,允许两个对象重叠的方法是什么?
问题2 我创建了一个10 x 10的表格,其中包含1到100的单元格ID,并将这些值放在一个数组中。对于我的游戏,我需要检查玩家想要进入的方格的ID,看看他们是否可以去那里。我会使用哈希表查找或我该怎么做?
答案 0 :(得分:1)
问题#1:
最后绘制的对象始终位于顶部,因此首先绘制迷宫,然后将播放器放在第二位。
问题#2:
将细胞布置成二维阵列可能更容易:
// note: these example numbers do not form a valid maze :-)
var maze=[
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
[0,0,1,0,0,1,1,0,0,1],
];
...并将角色的位置定义为x,y坐标:
var playerX=5;
var playerY=5;
然后你可以像这样检查与玩家相邻的每个单元格:
var north=maze[ playerX, playerY-1 ];
var south=maze[ playerX, playerY+1 ];
var east=maze[ playerX+1, playerY ];
var west=maze[ playerX-1, playerY ];
...然后允许/禁止移动。
但是如果你真的想要使用单个数组,你可以将单元格0-99转换为x,y,如下所示:
var cell=50;
var cellWidth=10;
var y=cell/cellWidth;
var x=cell-y*cellWidth;
...然后像这样将x,y转换为单元格0-99:
var cell=y*cellWidth+x;