我有两个SKSpriteNodes:
SKSpriteNode *leader = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(20,20)];
SKSpriteNode *follower = [SKSpriteNode spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(20,20)];
我想知道追随者的最佳方式是什么"关注"领导节点的行动。
例如,如果我打电话:
SKAction *first = [SKAction moveBy:CGVectorMake(0, 100) duration:1.0];
SKAction *second = [SKAction moveBy:CGVectorMake(100,0) duration:1.0];
[leader runAction:[SKAction sequence:@[first, second]]];
如何让关注节点在其操作期间跟随领导节点? 如果我有10个关注节点怎么办?如何让每个节点跟在它前面的节点(如一条线)?
答案 0 :(得分:0)
您应该为所有10个节点编写一个操作,以便它们跟随前面的节点。
node2应该MoveTo node1.position
将此方法放在更新功能中。
我建议您使用密钥分配操作。 在分配新的moveTo操作之前,每次更新都会删除使用该键的操作。
以下是一些代码:
$previous
只要您已经制作了变量,这应该可以正常工作。
节点将对角线排列到leaderNode。更改CGPointMake以调整其排列的位置。
如果您愿意,可以将此方法放在其他地方。可能将它放在与移动leaderNode的位置相同的位置。
因此,如果leaderInode在touchesMoved中移动,可以将其放在那里。
顺便说一句,如果你想让它变得紧凑,你可以把它变成一个循环。答案 1 :(得分:0)
在这个简单的案例中,您可以将所有粉丝添加为领导者的孩子,并相对于领导者的位置..
[leader addchild:follower]
(x10)。
领导者的任何动作都会自动应用于孩子。