これは、Javaコンソールでパックマンゲームを作成することを目的としています。
私は、配列の配列に基づいて2次元オブジェクト配列を初期化するために使用されるLabyrinthというクラスを持っています。パックマンの正方形は移動可能な空間でも壁でもよいので、私は空間または壁のいずれかをインスタンス化する。同じアレイスペースに2つのオブジェクトを持たせることができます
public Labyrinth() {
tab2 = new Object[25][23]; // On part du principe que la taille du labyrinth ne change pas
for (int ligne = 0; ligne < tab.length; ++ligne) {
for (int colonne = 0; colonne < tab[ligne].length; ++colonne) {
int value = tab[ligne][colonne];
Position p = new Position(ligne, colonne);
switch (value) {
case 0:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
case 1:
w = new Wall(p);
tab2[ligne][colonne] = w;
break;
case 2:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
case 3:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
case 4:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
case 5:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
case 6:
s = new Space(value, p);
tab2[ligne][colonne] = s;
break;
}
}
}
"tab"はint配列で、 "tab2"はオブジェクト配列です。 "value"パラメータは、2次元オブジェクト配列を作成するために使用されるint配列に基づくintです。
はパックマン、幽霊などのような様々な食品をインスタンス化することが可能です:
public class Space{
Ghost g;
Pacman pac;
Food f;
public Space(int value, Position p) {
super(p);
switch (value) {
case 2:
pac = new Pacman(p);
break;
case 3:
g = new Ghost(p);
break;
case 4:
f = new Gum(p);
break;
case 5:
f = new Fruit(p);
break;
case 6:
f = new Shroom(p);
break;
default:
break;
}
}
これは私が「座標」と同じアレイ上の空間オブジェクト、食品、パックマンやゴーストobejectを有することを意味します。
編集:ここでの目的は、別の
EDIT2に1「スペース」オブジェクトからパックマンを移動することです:私は入れて実現しなかった2回、同じコードを編集
あなたは 'GameObject [] gos'を意味しますか? – ChiefTwoPencils
それは何であるか分からない。 – atomiktom
主な記述があなたの「編集」にどのように関係しているかはっきりしません。 – ChiefTwoPencils