当前版本的Sprite-Kit框架提供了一些实例方法:
> removeAllActions()
> action(forKey key: String)
> hasActions()
显然,在我的节点中运行的每个 *** 作都有一个String键用于其标识.
所以我想到了与removeAllAction非常相似的东西,然后我做了一个SKNode扩展:
public extension SKNode { func removeAllAction(in List:[String]) { List.forEach { if self.action(forKey:let actionList = ["IDle_walk_sx","IDle_walk_dx","walk_dx","walk_sx","walk_IDle_sx","walk_IDle_dx","rotate_sx_dx","rotate_dx_sx"]self.removeAllAction(in: actionList)) != nil { self.action(forKey:public extension SKNode { func removeAllAction(in List:[String]) { List.forEach { if self.action(forKey: ) != nil { self.removeAction(forKey: )}} self.children .filter { .hasActions() } .forEach { .removeAllAction(in: List) } }})?.speed = 0.0; self.removeAction(forKey: )}} }}
在我的项目中,我可以将其用作:
代码效果很好.
但我不确定两个因素:
>速度修正的有效性(为零),我想
适合在面对重复行动时介绍它.我应该因为避免绷紧而将其取下或放下吗?
>如何将此扩展(扩展)扩展到任何扩展
要删除相同列表的孩子?
以上是内存溢出为你收集整理的ios – 从SKNode中删除特定的SKAction列表全部内容,希望文章能够帮你解决ios – 从SKNode中删除特定的SKAction列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)