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 赛车手的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 company-rust 时,即使提供了正确的路径,公司也无法找到赛车手