【发布时间】:2013-12-21 03:37:40
【问题描述】:
所以我正在开发一个使用坐标系的游戏,我想用一定数量的树来填充地图。我这样做的方式(它可能不是最好的方式)是选择一组随机坐标,检查这些坐标是否在有树的位置列表中,如果没有将树添加到地图,并将这些坐标添加到列表中。我的直觉是将坐标存储为一个数组,但是我似乎无法弄清楚它的语法。这是我所拥有的:
int boardWidth = 10;
int boardHeight = 10;
int numTrees = 75;
List<int[]> hasTree = new List<int[]>();
public Transform tree;
Transform[,] SetTrees(Transform[,] map) {
int treex = Random.Range(0,boardWidth-1);
int treey = Random.Range(0,boardHeight-1);
int[] treeCoords = new int[] { treex,treey };
int treeCount = 0;
while(treeCount < numTrees){
if (hasTree.Contains(treeCoords)){
treex = Random.Range(0,boardWidth-1);
treey = Random.Range(0,boardHeight-1);
}
else{
map[treex,treey] = (Transform)Instantiate(tree, new Vector3(i*tileWidth, 10, j*tileHeight), Quaternion.AngleAxis(90, Vector3.left));
hasTree.Add(treeCoords);
treex = Random.Range(0,boardWidth-1);
treey = Random.Range(0,boardHeight-1);
treeCount++;
}
}
return(map);
}
有什么想法吗?
【问题讨论】:
-
hasTree.Add(treeCoords); ???那个“hasTree”对象是什么?它没有在上面的代码中定义?
-
我会简化代码以...开始
-
对不起,添加了之前定义的变量。