RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

アクションRPGの基礎(RPG2000)(応用編 同時押し)

過去ブログの転載です。

二つのキーを同時に押すことによって攻撃をするようにしてみたいと思います。発動する技は【ため技】(以下リンク先)と同じ。

fermiumbay13.hatenablog.com

Esc+Enterで爆発が起こるようにしてみます。

RPGツクール2000ではEscはXキーに、EnterはZキーにも割り当てられているので、X+Zキーで攻撃できると説明を施した方が、操作はし易いかもしれませんね。

同時押しといえば同時押しなのですが、ここではXキーを押しながらZを押すと発動とします。厳密には同時押しじゃないような気もしますが……^^;

コモンイベント「キー入力(ため技)」は今回は使いませんので、開始条件を「呼び出されたときのみ」にするなどして、実行されないようにしてください。

コモンイベント「キー入力(同時押し)」(定期的に並列処理する)

◆キー入力の処理:[0001:キー入力:値](6のみチェック、キーが押されるまで待つOFF)
◆条件分岐:変数[0001:キー入力:値]が6
 ◆スイッチの操作:[0006:Esc押してるよ]をONにする
 ◆キー入力の処理:[0001:キー入力:値](5のみチェック、キーが押されるまで待つOFF)
 ◆条件分岐:変数[0001:キー入力:値]が5
  ◆条件分岐:スイッチ[0007:Enter押してるよ]がOFF
   ◆スイッチの操作:[0007:Enter押してるよ]をONにする
   ◆現在の場所を記憶:[0006],[0004],[0005]
   ◆スイッチの操作:[0003:ため技]をONにする
   ◆スイッチの操作:[0005:キー入力受付]をOFFにする
   ◆
  :分岐終了
  ◆
 :それ以外の場合
  ◆スイッチの操作:[0007:Enter押してるよ]をOFFにする
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆スイッチの操作:[0006:Esc押してるよ]をOFFにする
 ◆
:分岐終了

発動する技はまったく同じなので、今回はイベント「技」はいじりません。以下解説です。

まず、Escを押しっぱなしにしている間はスイッチ「Esc押してるよ」をONにし、Escを離したら、「Esc押してるよ」をOFFにするようにします。これは、Escを押している間にEnterを押したとき剣を振らないようにするためです。

剣のキー入力に、それを追加します↓

コモンイベント「キー入力」

◆キー入力の処理:[0001:キー入力:値]
◇条件分岐:スイッチ[0006:Esc押してるよ]がON
 ◇イベント処理の中断
 ◇
:分岐終了
◆現在の場所を記憶:[0006],[0004],[0005]
◆変数の操作:[0006:向き]代入,主人公の向き
◆スイッチの操作:[0001:剣を振る]をONにする
◆スイッチの操作:[0005:キー入力受付]をOFFにする

「Esc押してるよ」がON、すなわちEscを押している間は、Enterが押されても剣を振る準備はしないようにします。

「キー入力(同時押し)」の解説に戻ります。Escを押している間は、その中の条件分岐で更にキー入力の処理に入ります。ここではEnterのみ許可しており、押さないとキー値は0になります。Escを押しながらEnterを押すと技が発動するようにしたいので、
Enterを押して発動したら離すまで発動しないようにしないと、押しっぱなしにしている間にずっと技が発動し続けることになります。それを防止するために、ここでもスイッチ「Enter押してるよ」を用意します。

Enterを押している間は更にスイッチ「Enter押してるよ」がONになり、押さないとOFFになるようにします。「Enterを押してるよ」がONの間は技が発動しないように、
更に条件分岐を入れ、「Enterを押してるよ」がOFFのときでないと技が発動しないようにします。

f:id:fermiumbay13:20190801132638p:plain

これでできあがり。やってみましょう。Escを押しながらEnterを押すと技が発動します。