このWikiは古くなりました:新しいWikiへ移動


//@pnavi
[[←前>自機を動かす]]  [[次→>敵を動かす]]  [[トップ>シューティングゲームの作成]]

**弾を撃つ [#a3a001f5]
-弾を作る

[[オブジェクトを作る>オブジェクトを作る]]を参考に弾のオブジェクトを作ります。

&ref(newTama.png);

[[オブジェクトのキャラクタパターンを指定する>オブジェクトのキャラクタパターンを指定する]]を参考に、弾のパターンを指定します

&ref(tamapat.png);

弾をダブルクリックし、次のように入力します。

//prog


  
 extends SpriteChar;
 while(y>0) {
  y=y-8;
  update();
 }


実行すると、弾が上に飛んでいくのが見えます。
よく見えなかった場合、F2で止めて、弾をドラッグして下の方にもっていくと見やすいでしょう。

-スペースキーを押すと弾が出る

しかし実際には弾は自機から発射するものです。
スペースキーを押すと自機から弾が出るようにしましょう。

自機をダブルクリックし、次のように変更します

//prog


  
 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文の条件)から解説します

//progfrac 
 if (getkey(32)==1) ...


これは、[[自機を動かす]]でも出てきましたが、キーの状態を判定します
32はスペースキーを表す番号です。スペースキーが押された瞬間だけ
if文のあとの処理を行います(押しっぱなしでは弾が撃てません)

そして、スペースキーがおされていた場合の、弾を撃つ処理です

//progfrac 
 ... appear(new Tama(x,y,$pat_Sample+1));


これは、新しいオブジェクトを作るときの決まり文句で、次のような
パラメータを指定します。

//plainForm
書式:
  appear(new クラス名 ( x座標 , y座標 ,キャラクタパターン ))
 

'''クラス名'''には、作成したいオブジェクトのクラス名を指定します。
...といっても、クラスの話は少し難しいので、ここでは次の手順でクラス名を決めてください。

まず、今は弾を出したいのですから、とりあえず画面上の弾をクリックします。

すると、オブジェクトインスペクタに弾の内容が表示されますが、「クラス名」という欄に注目してください。
ここに「Tama」とかいてあります。これが弾のクラス名になります

&ref(tamaclass.png);

-'''x座標''' , '''y座標'''

作成するオブジェクトの位置を指定します。ここでは、自機から発射されるので、自機のx,y座標をそのまま使います

-'''キャラクタパターン'''

作成するオブジェクトのキャラクタパターンを指定します。
キャラクタパターンを指定するには、下図のように、キャラクタパターンウィンドウからキャラクタパターンを選ぶと、ステータスバーのところにキャラクタパターンの値が表示されます。この値($pat_Sample+1)をパラメータとして記述します。同時に、この値がクリップボードにコピーされます。

&ref(selTamaP.png);

さて、これで実行させてみましょう。スペースキーを押すと弾が発射されるようになりました。

//@pnavi
[[←前>自機を動かす]]  [[次→>敵を動かす]]  [[トップ>シューティングゲームの作成]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS