我正在构建一个永远滚动的游戏。 地面有一些洞,当玩家掉进洞里时游戏结束。 我可以滚动背景。 但我无法滚动" Ground"拥有PhysicsBody(玩家可以站立)。
我试过两种方式,就像这样。
1)使用JSTilemap滚动TileMap 它让游戏运行得如此缓慢,而且它不会永远滚动。
2)从地面图像文件滚动SpritNode。 有一个错误" PhysicsBody:无法创建物理主体"当我使用[SKPhysicsBody bodyWithTexture]时。
哪种方式更好? 并且,还有其他方式吗?
谢谢,
答案 0 :(得分:0)
使用简单的SKNode类扩展它我添加所有的洞和平台,例如SKNodebase addChild:hole和SKNodebase addChild:platform给每个洞和平台一个名称,例如hole.name =“h1”现在里面 - (void)update:(CFTimeInterval)currentTime
[记住你的SKScene函数会更新 - (void)update:(CFTimeInterval)currentTime函数,你必须在SKNodebase类中编写]
[[self children] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
SKNode *node = (SKNode *)obj;
if ([node.name isEqual: @“hole”]) {
CGPoint position;
//node.position get position of node on each update
}
if([node.name isEqual: @“platform”])
{
CGPoint position;
//node.position get position of node on each update
}
}];
答案 1 :(得分:0)
你可能想试试这个:
update():
ground0.position.x -= closeSpeed
ground1.position.x -= closeSpeed
if ground0.position.x <= -ground0.size.width{
ground0.position.x = ground0.size.width - closeSpeed
}if ground1.position.x <= -ground1.size.width{
ground1.position.x = ground1.size.width - closeSpeed
}
我的代码适用于我的游戏,地面上没有洞。 Yu可以创建几个地面部分并随机滚动
编辑: 这对于滚动背景也非常有用。