我读过这篇关于创建像 Outrun 或 Lotus 这样的老式赛车游戏的文章。
那里的代码基于 HTML 画布元素和 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 并使用真实的多边形来达到预期的效果?非常感谢任何帮助或建议。提前致谢。