为什么不赢这项工作? (与Sprite-Kit相关)

时间:2014-04-02 01:18:06

标签: ios iphone objective-c sprite-kit

我正在开发一款iOS游戏,我希望小丑们能够在场景之外产生,然后逐渐减少。我想到的是将它们全部创建,并将它们分开360像素放在不可见的场景上。

像这样:

SKSpriteNode *clown = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"clown.png"] size:CGSizeMake(40, 40)];

RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 34;
clown.position = CGPointMake (RandomPosition, self.frame.size.height + 360);
clown.zPosition = 1.0;
clown.name = @"clown";
[self addChild:clown .png];

请注意,第一个小丑位于场景顶部360px处。我想为9个小丑做这个,所以第二个是场景上方720px,第三个1080px等等......但在我说到这一点之前,我注意到这个还没有工作。如果我将360设置为40,它可以工作,但没有高于此值?为什么是这样。如何修复此代码?有没有更有效的方式来做我想做的事情?

也许有一种方法可以用数组做到这一点?

继续滚动方法,任何人都需要它:

[self enumerateChildNodesWithName:@"clown" usingBlock:^(SKNode *node, BOOL *stop) {
    SKSpriteNode *mercury = (SKSpriteNode *)node;
    CGPoint debVelocity = CGPointMake(0, -DEB_VELOCITY);
    CGPoint amtToMove = CGPointMultiplyScalar(debVelocity,_dt);
    clown.position = CGPointAdd(amtToMove, clown.position);

    if (clown.position.y > self.frame.size.height + 40) {
        [clown removeFromParent];
    }

}];

感谢。

1 个答案:

答案 0 :(得分:2)

嗯,这些线条似乎对于框架上方40多个像素的小丑来说是一个问题。

if (clown.position.y > self.frame.size.height + 40) {
    [clown removeFromParent];