첫번째 타일 뿌리기
분류없음 2005/01/21 09:40우선 소코반 마지막 레벨을 기준으로 가로 19, 세로 15로 정의했다. 이거는 경험상으로 홀수일때 정렬이나 센터 잡기가 편하기 때문이기도 하다.
[CODE]myMap = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1], [1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1], [1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1], [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], [1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1], [1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1], [1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ]; game={tileW:20, tileH:20}; game.Tile0= function () {}; game.Tile0.prototype.walkable=true; game.Tile0.prototype.frame=1; game.Tile1= function () {}; game.Tile1.prototype.walkable=false; game.Tile1.prototype.frame=2; function buildMap (map) { _root.attachMovie("empty", "tiles", ++d); game.clip=_root.tiles; var mapWidth = map[0].length; var mapHeight = map.length; for (var i = 0; i < mapHeight; ++i) { for (var j = 0; j < mapWidth; ++j) { var name = "t_"+i+"_"+j; game[name]= new game["Tile"+map[i][j]]; game.clip.attachMovie("tile", name, i*100+j*2); game.clip[name]._x = (j*game.tileW); game.clip[name]._y = (i*game.tileH); game.clip[name].gotoAndStop(game[name].frame); } } } buildMap(myMap);[/CODE]
이렇게 array로 배경의 타일을 정의하는 방법은 나도 블럭격파를 예전에 만들때 썼던 방법이었는데, 역시나 이 녀석들은 object 를 사용해서 코드가 훨씬더 깔끔하고 재사용가능하다.
object를 쓰고 prototype으로 기본속성을 정의하는 것에 주목하자!
자 그럼 이 간단한 첫번째 타일의 결과물은...!
자자 그럼 다음 단계로 넘어가자구..
