【问题标题】:Fake 3D racer in SpriteKitSpriteKit 中的假 3D 赛车手
【发布时间】:2015-08-14 13:45:50
【问题描述】:

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

Link to article

那里的代码基于 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 并使用真实的多边形来达到预期的效果?非常感谢任何帮助或建议。提前致谢。

【问题讨论】:

  • 你需要更清楚你的问题是什么。链接的文章太长,无法阅读和理解您的问题与它的关系。

标签: ios 3d sprite-kit racing


【解决方案1】:

如果您质疑什么是 3d 游戏更容易制作,那么您会得到简单的答案:当然是 3d 引擎比在 2d 引擎中伪造 3d 更容易使用。

此外,如果您的代码遇到问题,并且尝试使用 SpriteKit 伪造 3d,您将获得的帮助将少于使用 SceneKit。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多