我正在构建一个非常简单的2d平铺地图。它只是在随机位置产生一些不同的草砖,它的外观如下:
public int tileHeight; //y
public int tileWidth; //x
int tileHeightCounter;
int tileWidthCounter;
public GameObject[] floorTiles;
void Start(){
tileHeightCounter = 0;
tileWidthCounter = 0;
while(tileHeightCounter < tileHeight){
Vector3 tileSpawnPoint = new Vector3 (tileWidthCounter, tileHeightCounter, 0);
GameObject groundTiles = (GameObject)Instantiate (floorTiles[Random.Range(0, floorTiles.Length)], tileSpawnPoint, Quaternion.identity);
groundTiles.transform.parent = transform;
if (tileWidthCounter == tileWidth) {
tileWidthCounter = 0;
tileHeightCounter++;
}
tileWidthCounter++;
}
}
我遇到了两个问题 - 比如说你的tileHeight是10而你的tileWidth也是10,那么它生成的地图应该是10x10,随机分布的总数为100个。
相反,两个奇怪的事情正在发生,第一个是如果你的地图是10x10它实际上产生一个10x9意味着它在y轴上停止一层短。第二个是在0,0处创建一个网格(草瓦),但是正在创建地图的其余部分,其中至少x为1,这意味着地图有一个贴在左下角的单个图块。
我对这里发生的事情或如何解决这个问题感到有些困惑。非常感谢任何帮助。
答案 0 :(得分:1)
问题是你使用的<
小于tileHeight
,所以一旦它实际点击<=
,它就会过早退出循环一次迭代。设为public class GcmMessageHandler extends GcmListenerService {
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
String title = data.getString("title");
createNotification(title, message);
}}
。