在我的游戏中,我实现了无限滚动平台和一个从屏幕底部开始滚动到顶部的背景。当到达屏幕顶部并在底部出现一个新集时,它们将被删除。我的问题是动态调整所有平台的速度。我有一个系统,涉及一个开关箱,可以用一个UIButton控制,并控制‘状态’的平台,背景和我的播放器节点在其中。这包括播放器节点的某些属性,以及平台和背景在开关情况下的每种状态中滚动的速度。我正在尝试使用.speed属性SKSpriteNode,但是它没有按预期工作。这里是我的开关箱的一个示例重现:
switch state {
case 1:
background.speed = 1
platform.speed = 1
case 2:
background.speed = 2
platform.speed = 2
}这样,我就可以用按钮控制开关箱的哪种状态,然后在案例1和案例2之间返回。我可以到案例2,使速度是2,如果我想的话,返回到案例1,再次使速度1。所以实际上发生的是,当我改变开关箱的状态时,现有的平台速度实际上不符合新的速度值,只有在速度值变化之后产生的新平台。所以实时的情况是,我有平台在屏幕上移动,新的平台符合新的值,追赶并传递在新的平台之前产生的平台。我需要每个平台节点实时更新,所以每个集合之间的间隔是相等的。
经过大量的尝试和错误,我不完全确定我错过了什么,但如果有人对可能的解决方案有任何想法,那将是非常感谢的。
发布于 2020-10-19 16:32:32
我想你对平台的性质和关系有问题。平台属性代表什么?数组还是一次又一次被重写的对象平台?
您应该将平台置于一些SKNode下,并改变SKNode的速度。
所以在代码中:
类中的allPlatforms.addChild(platform)
SKnode的属性allPlatforms并在开始时对其进行初始化。
allPlatforms下,因此在删除时,请从allPlatforms:
而不是仅仅改变allPlatforms的速度而不是platform,它应该可以工作,但另一个问题可能是它不是数组,但是我看不到您的代码,所以我猜:/
https://stackoverflow.com/questions/64361232
复制相似问题