SpriteKit 中的假 3D 赛车手

Posted

技术标签:

【中文标题】SpriteKit 中的假 3D 赛车手【英文标题】:Fake 3D racer in SpriteKit 【发布时间】: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 并使用真实的多边形来达到预期的效果?非常感谢任何帮助或建议。提前致谢。

【问题讨论】:

你需要更清楚你的问题是什么。链接的文章太长,无法阅读和理解您的问题与它的关系。 【参考方案1】:

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

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

希望对你有帮助

【讨论】:

以上是关于SpriteKit 中的假 3D 赛车手的主要内容,如果未能解决你的问题,请参考以下文章

用Unity3D开发赛车游戏碰到的几个问题,求高手解答

使用 SpriteKit 和内置物理引擎移动和跳跃精灵

尝试使用 company-rust 时,即使提供了正确的路径,公司也无法找到赛车手

我在用unity3d编一个赛车游戏,其中遇到了几个问题:

卡丁赛车ariel-atom原子跑车3D图纸(无悬挂系统) SolidWorks设计 IGS 赛车

unity 3d 赛车时间