當我到達x的末尾時,我正在生成我的世界(隨機,無限和2d),其中x是由y形成的部分。如果在第一節中我有丘陵,我怎麼能這樣做,以便在第二節那些丘陵將繼續?是否有某種方式可以讓這種情況發生?Procedural World Generation
因此,這將是這個樣子
1 =產生土地
2 =非產生的土地,將在兩個那些填補
我得到這個現在:
有什麼辦法可以讓這個流程更好?
當我到達x的末尾時,我正在生成我的世界(隨機,無限和2d),其中x是由y形成的部分。如果在第一節中我有丘陵,我怎麼能這樣做,以便在第二節那些丘陵將繼續?是否有某種方式可以讓這種情況發生?Procedural World Generation
因此,這將是這個樣子
1 =產生土地
2 =非產生的土地,將在兩個那些填補
我得到這個現在:
有什麼辦法可以讓這個流程更好?
這似乎只是一個算法問題。你的生成機制需要一個起點。在最初的調用中,它將是0,在隨後的調用中它將是前一個「塊」的結束位置。
如果我正在這樣做,我可能會使用某種分佈 - 例如使用某種分佈來創建下一個點的加號,例如0-3。 10%的時間是+/1 3,25%的時間是+/- 2,25%的時間是0和40%的時間是+/- 1。
如果我理解正確的問題,這裏是一個解決方案:
如果產生的山丘之間的增量(差異),並在一個固定值上限(這樣的變化是從來沒有過大),那麼你可以隨身攜帶當生成新的一個山時,從上一節的最後一個山的價值,並將第一個隨機生成的(新節的)三角洲應用到結轉山的大小。
如果你'按順序生成這些「山丘」,我會創建一個訪問器方法,爲所述山丘的延續提供一個值,以開始下一部分。看起來你正在爲山坡創建一個隨機的高度,當在一個單獨的部分中繪製一座山時,它已經被某個值限制了。使用這種新的訪問器方法擴展該功能。
我對此有一個可能的實現。
public class DrawHillSection {
private int index;
private int x[50];
public void drawHillSection() {
for(int i = 0; i < 50; i++) {
if (i == 0) {
getPreviousHillSectionHeight(index - 1)
}
else {
...
// Your current implementation to create random
// height with some delta-y limit.
...
}
}
}
public void getPreviousHillSectionHeight(int index)
{
return (x[49].height);
}
}
我看到你的山從上到下繼續。你是什麼意思,他們不連續? – Adrian 2012-03-26 02:53:27
翻轉效果是由於截圖功能中的圖像鏡像,問題在於懸崖截斷 – blazingkin 2012-03-26 03:43:13