Я пытаюсь определить, почему произошло слайд. Я создал 2 узла, и один из них движется с помощью SKAction. Но когда один из них выше на другом, он не перемещается с узлом под ними.SpriteKit SKSpriteNode slide
Это немного трудно объяснить, так что я создал видео: https://www.youtube.com/watch?v=F4OuTBVd5sM&feature=youtube_gdata_player
Спасибо за ваши ответы!
Части кода:
CGPoint positionPoint = [valuePoint CGPointValue];
SKSpriteNode *slab = [SKSpriteNode spriteNodeWithTexture:plitaTexture];
slab.name = @"plita";
slab.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:plitaTexture.size];
slab.position = positionPoint;
slab.physicsBody.dynamic = NO;
CGFloat duration = 3.0;
CGFloat firstDuration = duration/(self.size.width/slab.position.x);
SKAction *moveLeftFirstTime = [SKAction moveTo:CGPointMake(0.0 + plitaTexture.size.width/2, positionPoint.y) duration:firstDuration];
SKAction *moveLeft = [SKAction moveTo:CGPointMake(0.0 + plitaTexture.size.width/2, positionPoint.y) duration:5];
SKAction *moveRight = [SKAction moveTo:CGPointMake(self.size.width - plitaTexture.size.width/2, positionPoint.y) duration:5];
SKAction *movingRightLeft = [SKAction sequence:@[moveRight, moveLeft]];
SKAction *moving = [SKAction sequence:@[moveLeftFirstTime,[SKAction repeatActionForever:movingRightLeft]]];
[slab runAction:moving];
[self addChild:slab];
Кролик код инициализации:
-(instancetype)init {
if (self = [super initWithImageNamed:@"eating-rabbit1"]) {
self.physicsBody = [SKPhysicsBody bodyWithTexture:self.texture size:self.texture.size];
self.physicsBody.allowsRotation = NO;
self.physicsBody.dynamic = YES;
self.physicsBody.friction = 1;
}
return self;
}
Вы рок! Большое спасибо! – Stillfinder