2015-11-07 53 views
2

我正在製作側面滾動遊戲,我不知道如何創建一個無限的地形,我是否需要使用一個不斷增加其寬度的靜態物體?此外,由於它是一個無限的世界,創建一個用作障礙的物體並在不在範圍內時將它移除是一個好主意嗎?如何用Box2d創建無限平臺?

public Body createPlatform(){ 
     Body body; 
     BodyDef def = new BodyDef(); 
     def.type = BodyDef.BodyType.StaticBody; 
     def.fixedRotation = true; 
     def.position.set(0.6f, 1.6f); 
     body = world.createBody(def); 

     PolygonShape shape = new PolygonShape(); 
     shape.setAsBox(2f, 1.5f);//have no Idea how to increase width infinitely or should I even be using a Body as ground. 

     FixtureDef fDef = new FixtureDef(); 
     fDef.shape = shape; 
     fDef.density = 1f; 
     body.createFixture(fDef); 
     shape.dispose(); 
     return(body); 
    } 

此外,我正在使用Libgdx庫和Java當然。

回答

2

最好將世界分成塊:一旦玩家退出一個塊,加載一個或多個塊。你不需要預先加載塊;你根據玩家的位置在飛行中加載它們。

+0

對不起,我是一個初學者,你是什麼意思的塊?你的意思是一旦地面不在範圍內,產生一個新的? –

+0

曾經玩過Minecraft嗎?當你四處走動時,你有沒有看到世界流行?流行的世界的一部分是一大塊。一旦玩家接近世界的一個新的部分,一個新的塊被加載。相同的概念可以應用於2D。只需跟蹤玩家當前所在的塊,然後根據需要加載塊。 –

+0

因此,一旦前一個塊不在範圍內,我加載一個新的塊並刪除以前的權利?基本上我必須創建多個不同對象的平臺,然後在正確的時間加載它們。 –