2020年11月16日

師匠のVB.NETどたばた塾~第15回

sisyo.gif
師匠T:うむ、師匠Tである! 今回もびしびしといくぞ!

deshi.gif
弟子D:弟子Dだ! 今回もびしびしと師匠越えを……ぐはあっ!!(飛び蹴りを受けて吹っ飛ぶ

sisyo.gif
たわけが。そう簡単にお主に越えさせはせぬわ。さて、前回はキャラの表示をやった。今回は、キャラの移動をやっていくとするぞ。

deshi.gif
は、はい……。

sisyo.gif
それでは、さっそくいくとしよう!

【 キャラを移動させてみよう! 】

sisyo.gif
さて。Spriteクラス(とそれを継承したクラス)では、キャラを移動させるのにMoveメソッドを使う。使い方はこうじゃ。

〇〇〇.Move(X移動量, Y移動量)

sisyo.gif
これを実行させると、ここの引数で指定した分だけキャラが動くのじゃ。例えば……

〇〇〇.Move(3, -2)

sisyo.gif
としてやると、現在地から左に3ドット、上に2ドットの位置にスプライトが移動するわけじゃな。

deshi.gif
ふむふむ。

sisyo.gif
ではさっそく、このMoveメソッドとあと一つ、GetJoypadInputStateメソッドを使って、自機の移動を実装していくとしようぞ。さっそく、MyCharaModuleのMyCharaMove()サブルーチンの中に、次のように書くのだ。
おっと、その前にModule MyCharaModuleの文の前に次の文を書いておかぬとな。

Imports DxLibDLL.DX

deshi.gif
………。

sisyo.gif
こほん。では改めて、MyCharaMove()サブルーチンに、次のように書くがよい。


vb2011-l01.JPG

sisyo.gif
できたら動かしてみるがよい。どうじゃ?

deshi.gif
おおっ! カーソルキーで自機が動くようになりましたよ! さすが師匠! ボケてなかったんですね!……いてっ。



sisyo.gif
わしはまだボケてはおらぬ。さて、この後は、この付け加えた部分について解説していくぞ。

【 キャラを移動させてみよう! 】

sisyo.gif
さて、まずはこの文からじゃ。

pad = GetJoypadInputState(DX_INPUT_KEY_PAD1)

deshi.gif
GetJoypadInputState()関数の結果を、変数padに入れてるんですね。師匠、GetJoypadInputState()関数とはなんぞや?

sisyo.gif
うむ。これは、ジョイパッドやカーソルキーの入力内容を返す関数じゃ。()内の引数は、どのジョイパッドやキーボードの入力内容を返すかを表しておる。

DX_INPUT_KEY_PAD1→キー入力とパッド1
DX_INPUT_PAD1→パッド1
DX_INPUT_PAD2→パッド2
DX_INPUT_PAD3→パッド3
DX_INPUT_PAD4→パッド4
DX_INPUT_KEY→キー入力

deshi.gif
ふむふむ。そこから、どのキーが押されたかをチェックするには、どうするのでしょうか?

sisyo.gif
うむ。それが、この下のIf文じゃ。この文を例にとって説明していくぞ。

If (pad And PAD_INPUT_UP) <> 0 Then
   vy = -1 * SPEED
End If

sisyo.gif
DXライブラリではこのように、方向を表す定数が用意されておる。なのでGetJoypadInputState()の戻り値とこの方向の定数とでAndを取り、それが0かどうかを判定すればいいのだ。0でなければ押されていることになる。
なお、方向を表す定数には次のようなものがある。

PAD_INPUT_UP→上
PAD_INPUT_DOWN→下
PAD_INPUT_LEFT→左
PAD_INPUT_RIGHT→右

deshi.gif
なるほど。

sisyo.gif
後は、各方向について押されたかどうかをチェックし、それに応じて移動量を表す変数vx、vyを設定してやり(上の文であれば、押された時に横の移動量である変数vyに-1*SPEEDを入れているわけじゃな。SPEEDは移動速度を表す定数じゃぞ)、その後に

oMyChara.Move(vx, vy)

sisyo.gif
このようにMoveメソッドで移動してやればOKじゃ。画面からはみ出したかどうかは、ReviseプロパティをDTRUEにしてあるので、クラス側でやってくれるので心配なしじゃ!

deshi.gif
なるほど、よくわかりました!

sisyo.gif
うむ。それでは次回は自機の弾の発射について説明していく。復習を欠かしてはならぬぞ!

deshi.gif
師匠も、ボケないように……(飛び蹴りを受けて吹っ飛ぶ



※次の更新は、『Plicyでフリーゲームを楽しもう!』の予定です。お楽しみに!

posted by 裏編 at 15:10| Comment(0) | 師匠のVB.NETどたばた塾 | 更新情報をチェックする