DFdou's Blog Life is short,Be yourself.

402/100

AS3-aSpaceEscape 迷宫脱离游戏(二)地图生成部分

这个游戏一开始,我们需要一个地图类,用来生成地图,这里我用的是方格的形式,每个方格Tile使用的是同一个类Tile.as,至于不同的Tile素材,只要在库里弄个元件,不同帧放上不同的素材,然后绑定Tile类就可以了。
Map类的代码是这样:

package org.nwhy.aSpaceEscape{
	import flash.display.Sprite;

	public class Map extends Sprite{
		private var data:Array;

		public function Map(mapData:Array){
			data = mapData;
			drawMap();
		}
		private function drawMap(){
			var len:uint = data.length;
			var tile:Tile;
			for(var i:uint=0;i<len;i++){
				for(var j:uint=0;j<Config.TILE_PERLINE;j++){
					tile = new Tile(data[i][j]+1);
					tile.x = j * Config.TILE_SIZE;
					tile.y = i * Config.TILE_SIZE;
					addChild(tile);
				}
			}
		}
	}
}

填充的Tile.as:

package org.nwhy.aSpaceEscape{
	import flash.display.MovieClip;

	public class Tile extends MovieClip{
		private var tileID:uint;
		public function Tile(id:uint){
			tileID = id;
			showTile();
		}
		private function showTile(){
			gotoAndStop(tileID);
		}
	}
}

代码是相当的简单。给个tileID 然后跑到指定帧就可以了~
然后是配置文件:

package org.nwhy.aSpaceEscape{
	public class Config{
		public static const TILE_SIZE:uint = 30;
		public static const TILE_PERLINE:uint = 12;//指定每行的Tile数,列数并不固定
		public static const MAP:Array = [[[0,0,0,0,0,0,0,0,0,0,0,0],
										 [0,1,1,1,1,1,1,1,1,1,1,0],
									 	 [0,1,1,1,1,1,1,1,1,2,1,0],
										 [0,1,1,2,1,1,1,1,1,1,1,0],
										 [0,1,1,1,1,1,1,5,1,1,1,0],
										 [0,1,1,1,1,1,1,1,1,1,1,0],
										 [0,1,1,1,1,1,1,1,1,1,1,0],
										 [0,1,2,1,1,1,1,1,1,1,1,0],
										 [0,1,1,1,1,1,1,1,2,1,1,0],
										 [0,1,1,1,1,1,1,1,1,1,1,0],
										 [0,1,1,1,1,1,1,1,1,1,1,0],
										 [0,0,0,0,0,0,0,0,0,0,0,0]]];
		public static const ROLE_POSITION:Array = [[2,2]];
	}
}

Some Related Posts

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

:zhuang :xizao :wuwu :wenhao :wc :touxiang :shuaya :shuajian :shengtian :paopao :no :meinv :maonv :loveu :leilei :kua :jrjr :dahan :chi :chaocai :byebye


CommentLuv Enabled

No trackbacks yet.