2013-07-28 129 views
0

我有一个关于随机产生的2D瓷砖游戏湖的问题。我使用了一个二维的int值来保存切片的值。每个值代表一幅图像(E.G草的16×16平方)。随机产生2d瓷砖游戏湖

所以我想出了这种方法,这可能已经在这里已经知道,但我使用'青蛙'。青蛙跳过创建源代码块。每个源块不能超过其他源块的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

回答

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; 
    } 
} 
+1

感谢那些工作! – user2628283