このコーナーでは、主に初心者さんに向けたイベントのテクニックを紹介していきます。
RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。
第六回の番外編です。
何とかしてInput.trigger?を使えないかなぁと頭をひねってみました。
つづきはこちら、からどうぞ。 そもそも、なぜInput.trigger?にこだわるかというと
「ボタンが押されているか」(Input.press?)の条件分岐が万能じゃないからなんですね。
第六回で触れたように、押しっぱなしで反応してしまう点が足かせになります。
アクションタイプのゲームを作ろうとすると、やはり決定キーやキャンセルキーも使いたいものですが
メッセージを送ったときの決定キーやメニューを閉じたときのキャンセルキーでどうしても暴発してしまいます。
というのも、キーを押してウィンドウが閉じてからイベントがキー入力を判定するまでの数フレームで
押していたキーを離さないと条件を満たしてしまうからです。
他のキーにしても、押しっぱなしが連続入力になってしまう問題は残ります。
Input.trigger?だとこれらが一発で解決するので便利なんですよ。
それならもうスクリプトで作れよという声が聞こえてきそうですが思いついて作ってみたのがこちら
ループ
条件分岐:スクリプト「Input.trigger?(:C)」
スイッチAをonにする
それ以外の場合
スイッチAをoffにする
ウェイト:1F
以上繰り返し
並列処理で作りますが、並列処理による繰り返しではなく
ループによる繰り返しをさせることでやや強引に毎Fチェックさせます。
ウェイトを入れておかないとフリーズするので注意。
一応軽くチェックしてみたところ
・問題となっていた判定もれは解消
・特に重くなったようには見えない
・ページ切り替えや場所移動でちゃんと処理が中断される
という感じなのでこれで大丈夫なんじゃないかと。
[9回]
PR
-->