专业人士如何在2D游戏中做界限?我的方式是说我不希望精灵进入某个区域:
//Example
if ((playerPosX >= 825) && (playerPosX <= 910)&& (playerPosY >= 170) && (playerPosY <= 255)) {
//do nothing
}else{
//move
}
但有些游戏有很多界限,所以我想知道,有没有更简单的方法。我不认为有人会在整个游戏中使用上述方法,只是为了阻止移动。
修改 我的问题主要是关于你可以四处走动的游戏,类似于口袋妖怪或最终幻想
答案 0 :(得分:7)
这取决于游戏。
许多游戏实际上会使用上述的组合:例如例如,用于固定场景的BSP树,以及由物理子系统管理的动态对象的四叉树。
答案 1 :(得分:0)
我想到了两种可能性,
1st描述了多边形的被遮挡区域,并在多边形测试中做了一个点来确定精灵是否可以移动到这个位置。
第2个像在图像处理程序中创建某种掩码(图层),其中零位表示可以移动的位置和阻挡区域的位置。这可以扩展到指示的深度,另见z-buffer以部分隐藏精灵,
编辑:
if ( mask[ nextY ][ nextX ] == 0 ) {
currX = nextX;
currY = nextY;
}
假设所有变量都是int,而mask是2d int数组。