btw 레벨에 ASCII 문자를 사용하면 읽기가 더 쉽습니다.
개인적으로 나는 모든 타일마다 다른 클래스를 사용합니다. 그러나 SUPER과 비슷한 타일을 만들면 두 가지와 비슷한 클래스를 만들면 비슷한 타일을 만들 수 있습니다. 클래스 확장. 예를 들어 Enemy
클래스에는 적 유형 인 여러 하위 클래스가 있습니다. 나는 서브 클래스가 이라 불리는 Basic
을 기본 적으로하지만, 서브 클래스는 Machine_Gun
으로 더 빨리 쏘아 올렸다.
그냥 스위치 케이스 사용, 레벨 데이터를 읽으려면 : 다음
for(var y = 0; y < levels[level_number]; y++) {
for(var x = 0; x < levels[level_number][y]; x++) {
switch(levels[level_number][y][x]) {
case "#": floor.push(new Floor(x * 20, y * 20)); break;
case "O": coins.push(new Coin(x * 20, y * 20)); break;
case "@": player.y = (x * 20) - 1; player.x = (y * 20) - 1; break;
case "&": monsters.push(new Basic(x * 20, y * 20)); break;
case "%": monsters.push(new Machine_Gun(x * 20, y * 20)); break;
default: break; // something else like air.
}
}
}
을, 내 수준은 다음과 같이 할 수있다 :
그냥 그렇게
levels = [
[
"##########", // MUCH easier to understand (for me at least)
"#OO %#",
"### ##",
"# @ &#",
"##########"
], [
"###############",
"# & #",
"# ####",
"# #",
"# ### #",
"# O #",
"# @ ####",
"#### #",
"#O % % #",
"###############"
]
];
, 쉽게 만들 수 있습니다 수준.