【问题标题】:Why won't this work? (Sprite-Kit related)为什么这行不通? (Sprite-Kit 相关)
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 哇哈哈哈,我觉得好笨。非常感谢,哈哈哈
  • 大声笑,很高兴我能帮上忙;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-04
  • 2017-01-24
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多