Ios 如何在屏幕上滚动节点
这听起来像是一个非常简单的问题,但我是Xcode新手,我一辈子都无法正确地解决这个问题,我想知道在屏幕左侧重复生成节点并将它们滚动到屏幕右侧的好方法是什么。这只是为了装饰,所以他们不需要做任何其他事情。问题是,当我试图在屏幕上滚动节点时,它带走了我的背景。背景与下面的代码放在一起-Ios 如何在屏幕上滚动节点,ios,sprite-kit,nodes,game-physics,Ios,Sprite Kit,Nodes,Game Physics,这听起来像是一个非常简单的问题,但我是Xcode新手,我一辈子都无法正确地解决这个问题,我想知道在屏幕左侧重复生成节点并将它们滚动到屏幕右侧的好方法是什么。这只是为了装饰,所以他们不需要做任何其他事情。问题是,当我试图在屏幕上滚动节点时,它带走了我的背景。背景与下面的代码放在一起- -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { self.backgroundColor =
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor whiteColor];
SKSpriteNode *bgImage = [SKSpriteNode spriteNodeWithImageNamed:@"start"];
[bgImage setScale: .52];
bgImage.position = CGPointMake(self.size.width/2, self.size.height/2);
[self addChild:bgImage];
编辑:这是我移动节点的方式-
- (void)moveObstacle
{
NSArray *nodes = self.children;
for(SKNode * node in nodes){
if (![node.name isEqual: @"start"] && ![node.name isEqual: @"start"]) {
SKSpriteNode *ob = (SKSpriteNode *) node;
CGPoint obVelocity = CGPointMake(-OBJECT_VELOCITY, 0);
CGPoint amtToMove = CGPointMultiplyScalar(obVelocity,_dt);
ob.position = CGPointAdd(ob.position, amtToMove);
}
}
}
但唯一的问题是,当一个单独的文本按钮应该保持静态时,它会随之移动
我只是不知道如何防止它与其他节点一起移动。对其运行适当的SKAction:
我可能没有说对,我的问题不在于如何移动一个节点,而在于重复产生大量节点,并将它们移动。这非常有效,我花了一段时间,因为我想的答案是背景在做什么,而不是移动节点是什么,谢谢!也许你在找一个SKEmitterNode。
SKAction *move1 = [SKAction moveByX:bgImage.size.width y:0 duration:5.0];
SKAction *move2 = [SKAction moveToX:-bgImage.size.width y:0 duration:0.0];
[bgImage runAction:[SKAction repeatActionForever:[SKAction sequence:@[move1,move2]]]];