当前位置 : 主页 > 手机开发 > 无线 >

2d – 在等距世界中移动瓷砖之间的精灵

来源:互联网 收集:自由互联 发布时间:2021-06-10
我正在寻找有关如何在等距游戏世界中移动(和动画)2D精灵的信息,但是从瓦片到瓦片的旅行使其运动平滑动画,而不是让它们从一个瓦片的范围跳到下一个的范围. 这方面的一个例子是运
我正在寻找有关如何在等距游戏世界中移动(和动画)2D精灵的信息,但是从瓦片到瓦片的旅行使其运动平滑动画,而不是让它们从一个瓦片的范围跳到下一个的范围.

这方面的一个例子是运输大亨游戏,其中火车和车厢通常是一个瓦片的一半,另一个是一半.

在正确的地方画出精灵并不太难.投影公式为:

screen_x = sprite_x - sprite_y
screen_y = (sprite_x + sprite_y) / 2 + sprite_z

sprite_x和sprite_y是固定点值(如果需要,可以是浮点数).通常,固定点的精度是平铺上的像素数 – 因此,如果您的平铺图形为32×16(投影的32×32平方),则您将具有5位精度,即平铺的1/32.

真正困难的部分是将精灵分类为正确渲染的顺序.如果使用OpenGL进行绘图,则可以使用z缓冲区来实现这一点.使用GDI,DirectX等,真的很难.在所有情况下,Transport Tycoon都无法正确渲染精灵.最初的Transport Tycoon拥有你见过的最可怕的渲染引擎.它实现了三个缩放级别是一个巨大的masm宏的三个实例. TT完全是用汇编语言编写的.我知道,因为我多年前将它移植到Mac上(并为PS1开发套件做了很酷的版本,但它需要6Mb).

附:游戏中的一个小平房图形基于Chris Sawyer当时居住的房子.我们很想添加一辆停在Mac车道上的法拉利,因为这是他用版税购买的车.

网友评论