0

如何将 2d 赛车游戏修改为等距?Flash + ActionScript3

截图

游戏完全是二维的。汽车按应有的方式移动,当它在地面行驶时,一切都很好。我添加了一个灰色坡道。现在汽车应该像箭头所示那样移动,产生 3d(等距)的错觉。

斜坡分为 3 个扇区

-首先,右侧的扇区(汽车当前所在的位置);

-第二,向左的扇区;

-第三,行业领先;

另外,我需要汽车,在速度很高的时候从坡道跳出来。我指的是旧的 scholl 游戏 Rock'n'Roll Racing(暴雪为 Sega 开发的游戏)

所以问题是

1)在坡道上行驶时,我应该如何改变汽车的角度和速度(velocityX 和velocityY) ?

2)我怎样才能开始跳出坡道?例如在摇滚赛车中?或者暴雪本质上是如何做到的?(也许是建议)

谢谢。

4

1 回答 1

2

最好的办法是在 3D 中计算游戏,然后简单地将其投影为等轴测图。

const angle:Number = Math.PI/3;//you may want to tweak this one
const xVec:Point = Point.polar(-Math.PI/2 + angle, 1);
const yVec:Point = Point.polar(-Math.PI/2 - angle, 1);
const zVec:Point = new Point(0, -1);

将 3D 转换为 2D:

function transform(x:Number, y:Number, z:Number):Point {
     return new Point(x*xVec.x + y*yVec.x + z*zVec.x, x*xVec.y + y*yVec.y + z*zVec.y);
}
于 2010-07-12T12:25:19.020 回答