Ich bin neu in SpriteKit und ich versuche, ein Spiel zu erstellen, wo Blöcke von der Spitze des Bildschirms fallen und landen auf der Unterseite des Bildschirms oder auf einem anderen Block. Hier ist der Beispielcode aus GameScene.m:SpriteKit bodyWithTexture Lücke zwischen Sprites beim Zusammenstoßen
- (void)didMoveToView:(SKView *)view
{
self.size = CGSizeMake(view.frame.size.width, view.frame.size.height);
self.backgroundColor = [UIColor whiteColor];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
SKSpriteNode *redRect = [SKSpriteNode spriteNodeWithImageNamed:@"RedRect"];
redRect.position = CGPointMake(CGRectGetMidX(self.frame), self.frame.size.height);
redRect.physicsBody = [SKPhysicsBody bodyWithTexture:redRect.texture size:redRect.texture.size];
redRect.physicsBody.affectedByGravity = YES;
SKSpriteNode *blueRect = [SKSpriteNode spriteNodeWithImageNamed:@"BlueRect"];
blueRect.position = CGPointMake(CGRectGetMidX(self.frame), self.frame.size.height);
blueRect.physicsBody = [SKPhysicsBody bodyWithTexture:blueRect.texture size:blueRect.texture.size];
blueRect.physicsBody.affectedByGravity = YES;
[self addChild:redRect];
[self addChild:blueRect];
}
Wie man auf dem Screenshot sehen, gibt es eine Lücke zwischen den beiden Blöcken und zwischen dem roten Block und dem Boden. Dies geschieht nur, wenn die Rekruten miteinander oder mit dem Boden kollidieren. Wenn ich zum Beispiel den SKAction moveToY:
benutze, der den Block zum unteren Bildschirmrand bewegt, verschwindet die Lücke. Wie kann ich diese Lücken beseitigen, wenn die Knoten kollidieren?
Meine schlechte, du hattest Recht, meine Bilder hatten unsichtbare Grenze um sie herum und es dauerte 2 Tage, um es zu bemerken! – Preemoz