Swift SKSpriteNode:按图像特征链接 Sprite
Posted
技术标签:
【中文标题】Swift SKSpriteNode:按图像特征链接 Sprite【英文标题】:Swift SKSpriteNode: Chaining Sprites by Image Feature 【发布时间】:2016-12-31 21:14:53 【问题描述】:上下文
出于 MWE 的目的,我们将使用以下简图:
目标是让这些精灵链在屏幕上手拉手移动:
值得注意的是,简笔画图像本身比该简笔画的臂展要宽。然而,背景是透明的。
根据应用程序,可以创建一个继承自SKSpriteNode
或封装它的类,例如一个名为Person
的类,用于存储附加信息,其中可能有一个数组var people = [Person]()
。
问题
1.) 假设您有两个上述Person
类的实例,每个精灵都拍摄一张简笔画图像。尽管图像具有透明背景,但如何以编程方式定位它们以使精灵“手拉手”触摸?当然,人们可能会花一些时间来寻找一个间距参数以确保实现这一点,但如果重新缩放精灵,则必须通过反复试验重新计算该参数。
2.) 给定这些精灵链,手拉手,如何让它们以相同的速度在屏幕上移动?如果计算 1.) 中提到的间距参数,则可以将 SKAction
分配给每个 Person
,以使它们的结束位置发生偏移(但总行驶距离相同),其中 TimeInterval 保持相同。有没有办法让所有精灵以每秒 $x$ 像素的速度向左移动直到离开屏幕?
【问题讨论】:
【参考方案1】:您似乎已经回答了大部分自己的问题,但这里有一些额外的想法:
使间距值与精灵的大小成比例。
是的,有一个 SKAction
在给定的时间段内移动一个给定的距离(实际上是一个速度):let moveAction = SKAction.moveBy(x: 10, y: 0, duration: 2)
【讨论】:
2.也是我所指的。我的意思是,如果没有一个 SKAction 只是在没有固定终点的轨迹上设置速度。 你也可以给节点一个物理体并设置它们的velocity
属性。以上是关于Swift SKSpriteNode:按图像特征链接 Sprite的主要内容,如果未能解决你的问题,请参考以下文章
通过名称 Swift 2、Xcode 7 获取 SKSpriteNode
Swift SKSpriteNode:检测 Tap / DoubleTap / LongPress