【问题标题】:Sprite Kit: How to create infinite game background like 'Binary Rush' or 'Stay in the line'?Sprite Kit:如何创建像“Binary Rush”或“Stay in the line”这样的无限游戏背景?
【发布时间】:2014-12-11 04:40:57
【问题描述】:

我想创建一个无限的游戏背景,例如“Binary Rush”或“Stay in the line”。背景可以是简单的轨道。这有点像一条随机的赛道。

目前我使用单个 SKShapeNode 来绘制路径,并将 lineWidth 设置为一个大数字。我使用var path = CGPathCreateMutable(); 创建随机轨道。 显然这不是理想的解决方案,因为轨道仅限于单行。我希望轨道可以扩展为不同的宽度,甚至在轨道内添加一些障碍物。

所以我的问题是: 1.这两个游戏的背景是不是都是图片,滚动的时候是随机加载的? 2. 我怎样才能随机生成这些轨道,并灵活地改变它的宽度或在其中添加障碍物? 3.如何组合这些轨道的不同部分,我假设不会创建无限长的路径。应将其拆分为不同的段,并在段滚出屏幕后将其 removeFromParent。

非常感谢 looooooooooooooot!!! :)

【问题讨论】:

    标签: swift sprite-kit cgpath skshapenode


    【解决方案1】:

    使用您对 ShapeNode 使用的方法。与其使线宽变大,不如制作另一条线,该线本质上是第一行的副本,在特定数量的像素上移动。这会给你界限(就像一条路)。您可以设置碰撞和接触事件,以防止汽车离开道路或损坏撞墙的汽车等。

    将第二面墙移过多少像素可以让您控制宽度。您可以根据班次轻松使轨道变宽或变窄。

    创建一种算法,将对象随机放置在轨道中。您可以使用作为边界的两条线来计算应在何处生成这些对象。

    【讨论】:

    • 谢谢,我会试试你的方法。
    【解决方案2】:

    虽然我在开发游戏方面的经验较少,但我想根据我的经验发表意见

    我在游戏中有一个要求,我需要在英雄运行的屏幕上滚动无限条我使用图像创建了无限运行条。我使用的图像超过了屏幕大小并且每当它到达图像的终点时,我都会通过创建具有特定速度的无限条来将该图像重置为原始位置。希望这会有所帮助,尽管它不能回答您的所有问题。

    【讨论】:

    • 感谢您的回答,所以您的意思是路径是预定义的并转换为纹理或图像?
    • 路径是预定义的,因为我只有一个不会根据您的需要动态更改的路径,但我们可以使用图像并使用随机函数放置它们来做到这一点
    猜你喜欢
    • 2013-10-28
    • 1970-01-01
    • 2015-05-15
    • 2015-09-27
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多