2016-12-31 50 views
1

语境

链接精灵对于MWE的目的,我们将使用一个棒图的下列图像: enter image description here夫特SKSpriteNode:由图像特征

与具有这些子画面的一个链的目标移动,手拉手,穿过屏幕: enter image description here

值得注意的是,棒图形象本身比这个棒形图的臂跨宽。但是,背景是透明的。

取决于应用,可以使一个类,无论是从SKSpriteNode继承或封装它,例如一个名为Person的类,用于存储附加信息,其中可能有一个数组var people = [Person]()

问题

1)假设你有上述Person类的两个实例,每个精灵以简笔画形象。一个人如何以编程的方式定位他们 - 让这些精灵们“手牵手”触摸,尽管图像有一个透明背景?当然,可以花一些时间寻找一个间距参数来确保达到这个目的,但是这个参数总是必须通过反复试验来重新计算,如果这些精灵被重新缩放的话。

2)给定一个链,这些精灵,携手并进,何以动画它们以相同的速度在屏幕上移动?如果一个计算)在1提到的间隔参数那么SKAction可以给予每个Person,使得它们的端部位置偏移(但行进的总距离是相同的),其中TimeInterval所保持相同。有没有办法告诉所有的精灵移动到左边,直到屏幕以每秒$ x $像素的速度出现?

回答

1

看起来你已经回答大多是自己的问题了,但这里有一些额外的想法:

  1. 使间距值成正比的精灵的大小。

  2. 是的,有一个SKAction给定距离超过给定时间内(有效速度)移动的精灵:let moveAction = SKAction.moveBy(x: 10, y: 0, duration: 2)

+0

2.就是我所指了。我的意思是如果没有一个SKAction可以在没有固定终点的情况下在轨迹上设置速度。 – SumNeuron

+0

你也可以给节点一个物理体并设置它们的'velocity'属性。 – nathan