Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JPEG'上分层画布对象;s-JavaScript_Javascript_Canvas_Overlapping_Maze - Fatal编程技术网

在JPEG'上分层画布对象;s-JavaScript

在JPEG'上分层画布对象;s-JavaScript,javascript,canvas,overlapping,maze,Javascript,Canvas,Overlapping,Maze,我正在创建一个迷宫游戏,到目前为止,我已经绘制了一个圆圈,玩家将移动该圆圈并加载一个迷宫jpeg。 当两个对象重叠时,圆被JPEG隐藏,允许两个对象重叠的方法是什么? 问题2 我创建了一个10 x 10的表格,单元格ID为1-100,并将这些值放入一个数组中。对于我的游戏,我需要检查玩家想要进入的方块的ID,看看他们是否可以进入。我会使用哈希表查找还是如何进行 问题1: 最后绘制的对象始终位于顶部,因此先绘制迷宫,然后绘制玩家 问题2: 在二维阵列中布置单元可能更容易: // note: the

我正在创建一个迷宫游戏,到目前为止,我已经绘制了一个圆圈,玩家将移动该圆圈并加载一个迷宫jpeg。 当两个对象重叠时,圆被JPEG隐藏,允许两个对象重叠的方法是什么?

问题2 我创建了一个10 x 10的表格,单元格ID为1-100,并将这些值放入一个数组中。对于我的游戏,我需要检查玩家想要进入的方块的ID,看看他们是否可以进入。我会使用哈希表查找还是如何进行

问题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 ];
var cell=50;

var cellWidth=10;

var y=cell/cellWidth;

var x=cell-y*cellWidth;
var cell=y*cellWidth+x;
…并相应地允许/禁止移动

但如果您真的想使用单个数组,可以将单元格0-99转换为x,y,如下所示:

var north=maze[ playerX,   playerY-1 ];
var south=maze[ playerX,   playerY+1 ];
var east=maze[  playerX+1, playerY ];
var west=maze[  playerX-1, playerY ];
var cell=50;

var cellWidth=10;

var y=cell/cellWidth;

var x=cell-y*cellWidth;
var cell=y*cellWidth+x;
…并将x,y转换为单元格0-99,如下所示:

var north=maze[ playerX,   playerY-1 ];
var south=maze[ playerX,   playerY+1 ];
var east=maze[  playerX+1, playerY ];
var west=maze[  playerX-1, playerY ];
var cell=50;

var cellWidth=10;

var y=cell/cellWidth;

var x=cell-y*cellWidth;
var cell=y*cellWidth+x;