我是地圖創建和數組存儲的新手,想知道我是否可以在任務中獲得一些幫助。我正在使用Java,並使用LWJGL庫,如果這是任何幫助。2D地圖製作
我並不是試圖從其他任何遊戲中剝離,所以它會與其他任何遊戲不同。我基本上只需要不同的區域,比如水,草和泥土。我最終會加山,爬山等。
我需要知道如何做到這一點,如果可以的話,我是新來的,就像我說的,所以我沒有任何代碼可以給給你任何關於我在什麼級別的想法。
如果你可以幫忙,請留下一個答案,會盡可能多的幫助,因爲我可以得到。
我是地圖創建和數組存儲的新手,想知道我是否可以在任務中獲得一些幫助。我正在使用Java,並使用LWJGL庫,如果這是任何幫助。2D地圖製作
我並不是試圖從其他任何遊戲中剝離,所以它會與其他任何遊戲不同。我基本上只需要不同的區域,比如水,草和泥土。我最終會加山,爬山等。
我需要知道如何做到這一點,如果可以的話,我是新來的,就像我說的,所以我沒有任何代碼可以給給你任何關於我在什麼級別的想法。
如果你可以幫忙,請留下一個答案,會盡可能多的幫助,因爲我可以得到。
有幾種方法可以用Java創建遊戲。創建基於圖塊的級別也可以通過多種方式完成。你可能想做一些關於創建2d java遊戲的教程的互聯網搜索,並找到關於如何這樣做的一些想法。
既然你想使用lwjgl,你會發現很難做2d遊戲。還有其他的框架可以爲你簡化這一點,answers in this question會給你一些建議。
這裏有可能會激發你讓2D貼圖一些鏈接:
您還應該嘗試使用game development stackexchange網站。他們也可以幫助您進行遊戲編程。
它如何呈現(openGL,swing/awt,其他)與地圖本身無關。這就是它的呈現方式。我使用了我編寫的一個特殊的CoordinateMap類,但它基本上只不過是Map<Point,MapTile>
的一個包裝。
你希望你的地圖對你想要做的事情有很大的影響。我想大多數的算法將使用這樣的(假設矩形):
for(int x = minx; x <= maxx; x++) {
for(int y = miny; y <= maxy; y++) {
map.put(new Point(x,y),generateRandomTile());
}
}
你可以做的另一種選擇正在蔓延。它的工作原理是這樣的:
// pick 10 random points (10 is up to you)
MapTile[] seeds = new MapTile[10];
Point[] seedPoints = new Point[seeds.length];
for(int i = 0; i < seeds.length; i++) {
seeds[i] = generateRandomTile();
seedPoints[i] = generateRandomPoint();
}
int distance = 1;
while(true) {
boolean changed = false;
for(int i = 0; i < seedsPoints.length; i++) {
Point p = seedPoints[i];
for(int x = -distance; x <= distance; x++) {
Point here = new Point(x,p.y));
MapTile tile = tiles.get(here);
if(tile == null) {
tiles.put(here,new Tile(seeds[i].terrainType));
changed = true;
}
}
// that does the left edge of the square of distance away from
// the center. I'll leave the other edges of the square for you since they're boilerplate
} // end for seeds
if(!changed) break;
distance++;
}
這是很棒的幫助glowcoder。然而,我需要進一步的解釋,並想知道我能否與外界聯繫一些如何? 像MSN這樣的東西將是適當的,並可以很容易地傳輸代碼等。 – Shannon 2011-04-25 07:33:51
還有另一個棧處理這些類型的問題;)http://gamedev.stackexchange.com/questions/4031/methods-for-generating-a-map – 2011-04-25 07:04:42
不用擔心,現在看看。非常感謝您的幫助。 – Shannon 2011-04-25 07:07:15