Ios 永远在SpriteKit中滚动地面

Ios 永远在SpriteKit中滚动地面,ios,iphone,ios7,sprite-kit,jstilemap,Ios,Iphone,Ios7,Sprite Kit,Jstilemap,我正在制作一个永远滚动的游戏。 地面有一些洞,当玩家掉进洞里时游戏结束。 我可以滚动背景。 但我不能滚动有身体的“地面”(玩家可以站立) 我试过两种方法,像这样 1) 使用JSTilemap滚动TileMap 这使得游戏运行非常缓慢,而且不会永远滚动 2) 从地面图像文件中滚动SpritNode。 使用[SKPhysicsBody bodyWithTexture]时出现错误“PhysicsBody:无法创建物理体” 哪条路更好? 还有,没有别的办法吗 谢谢,使用简单的SKNode类将其扩展为我的

我正在制作一个永远滚动的游戏。 地面有一些洞,当玩家掉进洞里时游戏结束。 我可以滚动背景。 但我不能滚动有身体的“地面”(玩家可以站立)

我试过两种方法,像这样

1) 使用JSTilemap滚动TileMap 这使得游戏运行非常缓慢,而且不会永远滚动

2) 从地面图像文件中滚动SpritNode。 使用[SKPhysicsBody bodyWithTexture]时出现错误“PhysicsBody:无法创建物理体”

哪条路更好? 还有,没有别的办法吗


谢谢,

使用简单的SKNode类将其扩展为我的添加所有孔和平台,例如SKNodebase addChild:hole和SKNodebase addChild:platform为每个孔和平台指定一个名称,例如hole。name=“h1”现在在-(void)更新:(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

        }
    }];

您可能想尝试以下方法:

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
}
update():
地面0.位置x-=关闭速度
地面1.位置x-=关闭速度

如果ground0.position.x,您可以在运行时轻松创建物理实体,因此我的建议是创建一个包含所有孔和平台的无休止的运行背景,但当孔和平台位于显示区域内时,仅将物理实体附加到孔和平台上,当它们位于显示区域外时将其移除,这将给您带来平滑的感觉,即使在运行时也是如此降低内存设备,因为您创建的物理实体很少。非常感谢您的回复,龙眼!!如何创建物理实体唯一可见区域?通过扩展SKSpriteNode或SKnode(它是SKSpriteNode或SKnode的子类)创建一个新的类洞,现在创建该类的布尔属性假设isPhysics,所以当您创建该洞类的新实例时,isPhysics现在在-(void)update:(CFTimeInterval)currentTime内为false{函数检查洞类的位置,如果它的内部显示区域附加了一个物理体,并使isPhysics为true,这样当你的节点位于可见区域之外时,你的代码就不会再附加物理体并删除该物理体了。我明白了!!我会试试。非常感谢!!!创建“无休止的运行背景”更好吗无论哪种方式?(简单的SKNode或JSTileMap)以及我如何知道每个坐标?例如孔或地面或…如果我想制作如此复杂的舞台?我会试试。谢谢!