为2d瓷砖游戏随机生成湖

时间:2013-07-28 20:32:46

标签: java map 2d tile

我有一个关于2d瓦片游戏中随机生成湖泊的问题。我使用二维int来保存tile的值。每个值代表一个图像(E.G草的16x16平方)。

所以我提出了这种方法,这可能在这里已经知道,但我使用了'青蛙'。青蛙跳来跳去创造源块。每个源块不能超过2-4个瓦片远离其他源块。然后,在源周围绘制一个特定的数字:

        map[startX][startY] = tile;
        map[startX-1][startY] = tile;
        map[startX-2][startY] = tile;
        map[startX+1][startY] = tile;
        map[startX+2][startY] = tile;
        map[startX][startY-1] = tile;
        map[startX][startY-2] = tile;
        map[startX][startY+1] = tile;
        map[startX][startY+2] = tile;
        map[startX+1][startY+1] = tile;
        map[startX-1][startY+1] = tile;
        map[startX+1][startY-1] = tile;
        map[startX-1][startY-1] = tile;

startX,startY是绘制图形的坐标。 当然,这都是硬编码的。我在想,是否有任何算法或方法可以自动执行此操作?你会给出数字的大小(这个被设置为2),它会为你做。

下图:http://tinypic.com/r/2mcu1ol/5

1 个答案:

答案 0 :(得分:0)

我认为这应该有效:

int size=2;

for(int i=0;i<=size;i++)
{
    for(int j=i-size;j<=size-i;j++)
    {
        map[startX+i][startY+j]=tile;
        map[startX-i][startY+j]=tile;
    }
}