【发布时间】:2014-04-02 01:18:06
【问题描述】:
我正在开发一款 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];
请注意,第一个小丑位于场景顶部上方 360 像素处。我想为 9 个小丑做这个,所以第二个会在场景上方 720 像素,第三个 1080 像素,等等……但在我开始之前,我注意到这个甚至不起作用。如果我将 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];
}
}];
谢谢。
【问题讨论】:
-
如果你想要场景上方的小丑你是减去 360,而不是增加。
-
试过了,也没用 :( @rdelmar
标签: ios iphone objective-c sprite-kit