うんともすんとも

 今日は雨が降っていたため、バスが非常に混んでた上に駅まで40分近くかかるという状態でした。座れたからいいものの、たちっぱなしだったらと思うと怖いというかだるいというか。
 今日は、paraflaのフラッシュで3Dダンジョン探索ゲームを作ろうと色々画策しています。携帯ようなので配列は使えませんが、擬似的に配列を作ってしまえばいいという考えに至った末、次のようなプログラムを突っ込んでみました。

if(floor == 0){
x10 = 16383;
x11 = 16383;
x12 = 13075;
x13 = 12291;
x14 = 15639;
x15 = 12535;
x16 = 13955;
x17 = 15267;
x18 = 12811;
x19 = 12567;
x110 = 12563;
x111 = 12563;
x112 = 16383;
x113 = 16383;
}

for(k = 0; k < 14 ; k++){
for(i = 0; i < 14 ; i++){
a = valueOf*1;
("map" & k & i) = (a / 2 - int(a / 2)) * 2;
("x" & floor + 1 & k) = int(a / 2);
}
}

 10進数から2進数を引っ張り出す式をそのまま突っ込んだだけですけど、こうすれば配列みたいに使える!「valueOf」で引っ張らないといけないのが少しめんどくさいですけど。

if(move == 1){
movecheck = 1;
move = 0;
yp1 = ypos + 1;
yp2 = ypos + 2;
y00 = ypos;
ym1 = ypos - 1;
ym2 = ypos - 2;
xp1 = xpos + 1;
xp2 = xpos + 2;
x00 = xpos;
xm1 = xpos - 1;
xm2 = xpos - 2;

if(muki == 2){
site1 = valueOf("map" & ym1 & x00);
site2 = valueOf("map" & ym1 & xp1);
site3 = valueOf("map" & ym1 & xm1);
site4 = valueOf("map" & ym2 & x00);
site5 = valueOf("map" & ym2 & xp1);
site6 = valueOf("map" & ym2 & xm1);
}
else if(muki == 4){
site1 = valueOf("map" & y00 & xm1);
site2 = valueOf("map" & yp1 & xm1);
site3 = valueOf("map" & ym1 & xm1);
site4 = valueOf("map" & y00 & xm2);
site5 = valueOf("map" & yp1 & xm2);
site6 = valueOf("map" & ym1 & xm2);
}
else if(muki == 6){
site1 = valueOf("map" & y00 & xp1);
site2 = valueOf("map" & ym1 & xp1);
site3 = valueOf("map" & yp1 & xp1);
site4 = valueOf("map" & y00 & xp2);
site5 = valueOf("map" & ym1 & xp2);
site6 = valueOf("map" & yp1 & xp2);
}
else if(muki == 8){
site1 = valueOf("map" & yp1 & x00);
site2 = valueOf("map" & yp1 & xp1);
site3 = valueOf("map" & yp1 & xm1);
site4 = valueOf("map" & yp2 & x00);
site5 = valueOf("map" & yp2 & xp1);
site6 = valueOf("map" & yp2 & xm1);
}
}

 キャラクターの現在地から前方の部分の値を読み込んで対応する部分を描写および消去を行っています。

 結論からいうときちんと動きませんでした。この部分が悪いのかその他の部分が悪いのかはわかりませんが。とりあえず何とかしないと。

*1:"x" & floor + 1 & k