弾を撃つ †
オブジェクトを作るを参考に弾のオブジェクトを作ります。 オブジェクトのキャラクタパターンを指定するを参考に、弾のパターンを指定します 弾をダブルクリックし、次のように入力します。 extends SpriteChar; while(y>0) { y=y-8; update(); } 実行すると、弾が上に飛んでいくのが見えます。 よく見えなかった場合、F2で止めて、弾をドラッグして下の方にもっていくと見やすいでしょう。
しかし実際には弾は自機から発射するものです。 スペースキーを押すと自機から弾が出るようにしましょう。 自機をダブルクリックし、次のように変更します extends SpriteChar; 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(); } まず前半部(if文の条件)から解説します if (getkey(32)==1) ... これは、自機を動かすでも出てきましたが、キーの状態を判定します 32はスペースキーを表す番号です。スペースキーが押された瞬間だけ if文のあとの処理を行います(押しっぱなしでは弾が撃てません) そして、スペースキーがおされていた場合の、弾を撃つ処理です ... appear(new Tama(x,y,$pat_Sample+1)); これは、新しいオブジェクトを作るときの決まり文句で、次のような パラメータを指定します。 書式: appear(new クラス名 ( x座標 , y座標 ,キャラクタパターン )) クラス名には、作成したいオブジェクトのクラス名を指定します。 ...といっても、クラスの話は少し難しいので、ここでは次の手順でクラス名を決めてください。 まず、今は弾を出したいのですから、とりあえず画面上の弾をクリックします。 すると、オブジェクトインスペクタに弾の内容が表示されますが、「クラス名」という欄に注目してください。 ここに「Tama」とかいてあります。これが弾のクラス名になります
作成するオブジェクトの位置を指定します。ここでは、自機から発射されるので、自機のx,y座標をそのまま使います
作成するオブジェクトのキャラクタパターンを指定します。 キャラクタパターンを指定するには、下図のように、キャラクタパターンウィンドウからキャラクタパターンを選ぶと、ステータスバーのところにキャラクタパターンの値が表示されます。この値($pat_Sample+1)をパラメータとして記述します。同時に、この値がクリップボードにコピーされます。 さて、これで実行させてみましょう。スペースキーを押すと弾が発射されるようになりました。 |