Spritekit:如何使游戏屏幕视图向上移动作为节点“跳”沿Y轴?

有人可以发表一个示例代码,我可以使我的游戏屏幕上移,因为我的播放器节点“跳”了Y轴。 像涂鸦跳转一样? 现在它显然只是跳出屏幕的顶部。

任何帮助,使我的“平台”节点从父母中删除自己,然后当他们走出视图的底部,当我向上移动屏幕将reapear将帮助以及。

还有最后一件事情,我如何在初始视图中添加多个节点。 [自加小孩:节点]只做一个。

我知道这些可能是业余的问题,这是因为我是一个业余爱好者。

彼得的答案可能会是最有帮助的,但是我会尽力回答你提出的第二个和第三个问题,因为sonyony覆盖了第一个问题。

要删除从屏幕上掉下的平台,请使用node.name = @"platform"; 当实例化平台节点,然后在update方法中检查它们相对于worldNode的当前位置,如下所示:

 -(void)update:(NSTimeInterval)currentTime { [self enumerateChildNodesWithName:@"platform" usingBlock:^(SKNode *node, BOOL *stop) { if(node.position.y < _worldNode.position.y-(self.size.height/2)) [node removeFromParent]; }]; } 

要将多个节点添加到场景中,您必须使用[self addChild:node]; 多次在多个节点上手动实例化每个节点,或者迭代地设置它们。 如果你想以相当一致的模式运行平台,for循环可能是完成这个任务的正确方法。 您也可以通过将已经从屏幕底部掉落的那些移动到刚刚离开屏幕的顶部而不是完全移除它们来以较less的总节点完成这个。

你在问一个非常广泛的问题,我build议你看一下raywenderlich的教程: 如何让一个像Mega Jump这样的游戏让你开始,当遇到问题时提出更具体的问题。

解决scheme是将重点放在播放器节点上。

例如,你有你的背景节点_worldNode和你的播放器节点_player。 然后,将所有的景色添加到您的_worldNode中,这也将包含您的播放器。

当你的玩家四处移动时,你可以使用下面的代码来保持他的焦点:

 - (void)didSimulatePhysics { // keep the center of the screen on the player _worldNode.position = CGPointMake(-(_player.position.x-(self.size.width/2)), -(_player.position.y-(self.size.height/2))); } 

我将代码放入didSimulatePhysics因为如果被物理引擎移动,它可以确保玩家的新位置。