[[Tonyu基礎練習]] - ''練習:for~in文'' for~in文チュートリアルにおいては、複数の敵の当たり判定に使っていますが、他にもいろいろな使い方があります。 まず、for~in文の働きから確認していきましょう。 <pre>for (''変数名'' in $chars) { ''実行内容'' }</pre> #現在存在しているオブジェクトのなかから1つを取り出して、それを'''変数名'''で指定された変数に代入します #'''実行内容'''に書かれた命令を実行します #今度は別のオブジェクトを取り出して、1,2の手順を行います。これを繰り返します #全部のオブジェクトについて、上の手順を行ったら、for~in文全体が終わります
例題:次の文ではエラーがでてしまいます。どの部分が間違いであるかを指摘し、その間違いを訂正しなさい。 teki.tonyu function atariHantei() { for (t == $chars) { if (t is shot && crashTo(t)) { t.die(); die(); } } if (crashTo($Jiki)) { $Jiki.die(); die(); } } while(y<$screenWidth){ x+=2*sin(30*rnd(11)); y++; atariHantei(); update(); } 例題:主人公と壁の当たり判定を行いなさい。 teki.tonyu sx=x;sy=y;atari=0; for (a in $chars) { if (a is Kabe) { x=sx+16;y=sy; //右 if (crashTo(a)) atari=1; x=sx;y=sy+16; //下 if (crashTo(a)) atari=1; x=sx-16;y=sy; //左 if (crashTo(a)) atari=1; x=sx;y=sy-16; //上 if (crashTo(a)) atari=1; } } x=sx;y=sy; |