有人可以发一个示例代码,说明如何让我的游戏画面向上移动,因为我的玩家节点"跳跃"沿y轴。涂鸦跳?此刻它显然只是直接从屏幕顶部跳出来。
任何帮助我制作我的平台"节点从父节点中移除,然后当它们从视图的底部出来时重新进行,因为我向上移动屏幕也有帮助。
还有最后一件事,我如何在初始视图中添加多个节点。 [self add child:node]只生一个。
我知道这些可能是业余问题,因为我是业余爱好者。
答案 0 :(得分:5)
你提出了一个非常广泛的问题,我建议你看一下raywenderlich教程:How to make a game like Mega Jump让你入门,并在遇到问题时提出更具体的问题。
答案 1 :(得分:2)
解决方案是将重点放在播放器节点上。
例如,您的背景节点名为_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
,因为如果他被物理引擎移动,它可以确保您的玩家的新位置。
答案 2 :(得分:1)
Pieter的答案可能是最有帮助的,但我会尝试回答你提出的第二个和第三个问题,因为sangony涵盖了第一个问题。
要删除已脱离屏幕的平台,请在实例化平台节点时使用node.name = @"platform";
,然后在更新方法中检查它们相对于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循环可能是完成此操作的正确方法。你也可以用更少的总节点来完成这项工作,方法是将从屏幕底部掉落的节点移到屏幕顶部,而不是完全移除它们。