2012-03-29 21 views
0

我想創建一個未完成的跳轉游戲。我使用超級跳線代碼。世界的變化高度的主要部分是:如何創建未完成的跳轉游戲?

while (y < WORLD_HEIGHT - WORLD_WIDTH/2) { 
    ... 
    y += (maxJumpHeight - 0.5f); 
    y -= rand.nextFloat() * (maxJumpHeight/3); 
} 

如果我改變,而條件一個大數目(例如100或1000),FPS變低(我得到滯後)。 我嘗試了很多東西。但我無法達成正確的答案。 如果有人能幫助我。 (對不起,我的英語...)

+1

我認爲「未完成的跳躍」是「塗鴉跳躍」的誤譯?您引用的代碼是級別佈局代碼。你具體做了什麼改變?你想完成什麼?你是否想讓關卡「更高」? – 2012-03-29 18:50:10

+0

如果你的意思是我想創建一個像塗鴉跳躍一樣的遊戲,我必須說「是」。我可以讓我的水平比這更高,只需將'y Hosein 2012-03-30 09:20:11

回答

1

更改

while (y < WORLD_HEIGHT - WORLD_WIDTH/2) { 

while (y < WORLD_HEIGHT * 100) { 

超級跳線的World.generateLevel會產生大量的內容比較多,但實際上不會使水平更長(顯示系統最多隻能顯示到WORLD_HEIGHT,而最終級別的Castle仍然會在同一個地方。

如果你想製作一個非常大的水平,改變了WORLD_HEIGHT本身的定義。它目前設置爲大約20個屏幕的平臺。

因爲所有的每幀更新和衝突檢測代碼都使用所有元素的線性掃描,所以當您使級別更大時遊戲變慢的原因是可能是。對於小的等級來說,這很好,但如果你有很大的等級,這不會擴展。但是,我只是猜測,你應該運行分析器來確定所有時間都花在哪裏。

+0

感謝您的答案。在問我的問題之前,我檢查了你的改變。它運作良好。和關於'WORLD_HEIGHT',它是20 * 15,現在,我將它改爲15 * 200。不幸的是我無法在我的聯繫人上查看它。但我只是檢查它的Java。它似乎比我改變while while(y Hosein 2012-03-31 18:49:47