SpriteKit中的假3D赛车

时间:2015-08-14 13:45:50

标签: ios 3d sprite-kit racing

我读过这篇关于创建像Outrun或Lotus这样的老式赛车游戏的文章。

Link to article

那里的代码基于HTML canvas元素和JavaScript。为了实现3D效果,作者对赛道进行分段,并为每个段投影简单的2D多边形,这些多边形投影到" 3D空间"。绘制这些多边形的代码是:

polygon: function(ctx, x1, y1, x2, y2, x3, y3, x4, y4, color) {
    ctx.fillStyle = color;
    ctx.beginPath();
    ctx.moveTo(x1, y1);
    ctx.lineTo(x2, y2);
    ctx.lineTo(x3, y3);
    ctx.lineTo(x4, y4);
    ctx.closePath();
    ctx.fill();
  }

这些多边形在每一帧中绘制。我想知道同样的概念可能会转化为SpriteKit。因为几乎在SpriteKit中绘制自定义多边形内容的唯一选择是SKShapeNode我想到使用它们。但是,我觉得这个解决方案可能存在一些严重的问题:

  • 我听说SKShapeNodes整体性能非常糟糕,内存泄漏问题等等
  • 根据上述概念,我们必须在每个帧中创建数百或数千个SKShapeNode来布局并在屏幕上渲染轨道,这可能会完全破坏帧速率

我开始想知道是否真的可以在SpriteKit中创建类似的游戏。你对如何去做有什么建议吗?或者我是否需要转换到SceneKit并使用真正的多边形来实现所需的效果?任何帮助或建议都非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你质疑3D游戏更容易做什么,那么你会得到一个简单的答案:当然是一个3D引擎更容易使用然后在二维引擎中伪造3d。

而且如果你的代码遇到麻烦并且你想用SpriteKit伪造3d,你将获得比使用SceneKit更少的帮助。

我希望这会有所帮助