我正在寻找有关如何在等距游戏世界中移动(和动画)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车道上的法拉利,因为这是他用版税购买的车.