自機を破壊する †敵と自機がぶつかったら、自機が死ぬ †敵を作りましたが、このままでは弾があたっても、自機がぶつかっても何もおきません。 まず、敵が自機にあたると自機が破壊されるようにしましょう 敵オブジェクトをダブルクリックして、次の行を追加します extends SpriteChar; while (y<$screenHeight) { y=y+2; if (crashTo($myChar)) $myChar.die(); // 追加 update(); } まずifの条件部から見ていきましょう if (crashTo($myChar)) ... crashToは、この敵が自機($myChar)に当たっているかという判定を行います。 当たっている場合はif文の後ろが実行されます。 なお、自機の名前は、自機をクリックし、オブジェクトインスペクタで確認できます。 ぶつかった場合の処理は次のようになります ... $myChar.die(); これによって自機が死にます。 xx.die();は、xxで表されるオブジェクトを殺す命令で、殺されたオブジェクトはただちに処理が止まり、画面上からいなくなります。 それでは実行してみましょう。敵が自機にふれると、自機が消えてしまいました。 爆発パターンを作る †しかし、いきなり消えるのはあっけないので、爆発するアニメーションをつけてみましょう。 新規オブジェクトを作成します。 キャラクタパターンを、爆発パターンの一番先頭のパターンにします。 ダブルクリックして、動作を次のように書きます extends SpriteChar; wait(5); p=p+1; wait(5); p=p+1; wait(5); p=p+1; wait(5); 新しくwait(5);という命令が出てきました。これはupdate();に似ています。 書式: wait(待機フレーム数); これを行うことにより待機フレーム(コマ)数で指定しただけオブジェクトの動作が止まります。ここでは5フレーム(5コマ)待機します。 その後、変数pの値を1増やしています。変数pは、このオブジェクトのキャラクタパターンを表します。つまり、pを1増やすことにより、キャラクタパターンが次のように変化していきます 実行してみると、爆発しているようなアニメーションを見ることができます。 爆発パターンを出現させる †爆発パターンを、自機が死んだときに発生させるようにしましょう。 自機オブジェクトをダブルクリックして、次のように変更します extends SpriteChar; //追加 function onDie() { appear(new Bomb($myChar.x , $myChar.y ,$pat_Sample+4)); } //追加終わり while(1) { if (getkey(39)>0 && x<$screenWidth ) x=x+3; if (getkey(37)>0 && x>0) x=x-3; if (getkey(32)==1) appear(new Tama(x,y,$pat_Sample+1)); update(); } 敵を出現させるで出てきたメソッドを使いました。しかし、先ほどと違ってこの onDieというメソッドはプログラム中から呼ばれていません。 実はこの onDieという名前をつけたメソッドは特別な意味を持ち、そのオブジェクトが死んだときに行わせる処理を記述できます。実際には、敵のオブジェクトが$myChar.die(); を呼んだときに、自動的にこの onDieメソッドが呼ばれます。 onDieメソッドの中では、次の処理によって爆発オブジェクトを出現させています。 appear(new Bomb($myChar.x , $myChar.y ,$pat_Sample+4));
|