在超级玛丽或坦克大战中,有许多的障碍物,如果一个个描述,代码量十分巨大,故可以采取使用二维数组画出地图的方法。
用二维数组画地图的实质是利用数组下标来表示窗体中的某些点,如上图一个 4*4的方格就代表你的窗体,假设小方格为 长宽皆为 50 像素的正方形。
如果你想以黄色五角星为标准画出一个砖块,该怎样画。
观察方格图可得黄色五角星下标为 (2,2)
假设先创建一二维数组表示窗口,空白地的下标对应内容为 0 ,而下标(2,2)因为要画出砖块,所以内容写为 1
int[]arry ={
[0,0,0,0],
[0,0,0,0],
[0,0,1,0],
[0,0,0,0]
}
//两次for遍历二维数组
for(int i=0;i<arry.length;i++){
for(int j=0;j<arry[0].length;j++){
//判断如果遍历到你需要画出图片的下标,在此处利用下标画出图片
if(arry[i][j]==1){
g.drawImage(img,j*50,i*50,50,50,null);
}
}
}
后续游戏编写过程中的碰撞检测问题,也可以用双重for循环来遍历检测人物或子弹是否与墙的碰撞等,减少大量代码量。
如果不理解可先参考杨辉三角。