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