|
一般2D游戏里的行走,常见的做法之一是按格子走,也就是把地图画分为网格,在逻辑上角色行走时都是一格一格地走的(当然相邻两格之间的过程还是有表现的,比如按像素走)。但是在速度方面我见过的有三种做法:
1。直接设定一个角色每走一格所需的时间,然后如果是(相对于网格)斜着走,比如从(1,1)走到(2,2),那就按走一格的时间来算
2。设定角色在屏幕上的速度(单位时间内走过的距离),但是根据行走的方向把速度映射为一个椭圆,也就是左右走相对最快,斜着走次之,上下走最慢
3。设定角色在逻辑场景中的速度,然后如果是相对于网格横着走或者竖着走,那么走一格就算一格的时间,如果是斜着走,比如从(1,1)走到(2,2),那就按照走根号2格(大约1.414格)的时间来算
从程序的角度看,本质问题就是角色行走应该是在一个逻辑场景里走的,只要这个逻辑场景是2D的,那么不管表现是2D、2.5D还是3D,不管视角是怎样的,那么一定是在逻辑场景里走的,而逻辑场景画分出的一定是方格,所以行走速度不应与屏幕像素或屏幕格子关联,而在逻辑场景里的行走,不管什么方向,逻辑速度应该是一致的,这样行走的真实感才有保障,进而保障游戏场景的空间感。 |
|