忍者ブログ
RPGツクールのブログです。イベント講座とRGSS3スクリプト配布をやってます♪
カウンター
ブログ内検索
アーカイブ
最新コメント
[11/28 おばけ]
[11/17 TEAM品が9]
[10/23 s/ash]
[10/15 いちの]
[10/09 葵水風花]
プロフィール
バナー

HN:奈々(なな)
RPGツクールVXAceを中心に製作を行っています。 スクリプト、イラスト、ドット絵など広くちょこちょこ手を出していますので、 できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。
このコーナーでは、主に初心者さんに向けたイベントのテクニックを紹介していきます。
RPGツクールVXAceで説明していきますが、多くはVXや他のツクールでも可能です。

第六回の番外編です。
何とかしてInput.trigger?を使えないかなぁと頭をひねってみました。
つづきはこちら、からどうぞ。
そもそも、なぜInput.trigger?にこだわるかというと
「ボタンが押されているか」(Input.press?)の条件分岐が万能じゃないからなんですね。
第六回で触れたように、押しっぱなしで反応してしまう点が足かせになります。

アクションタイプのゲームを作ろうとすると、やはり決定キーやキャンセルキーも使いたいものですが
メッセージを送ったときの決定キーやメニューを閉じたときのキャンセルキーでどうしても暴発してしまいます。
というのも、キーを押してウィンドウが閉じてからイベントがキー入力を判定するまでの数フレームで
押していたキーを離さないと条件を満たしてしまうからです。
他のキーにしても、押しっぱなしが連続入力になってしまう問題は残ります。
Input.trigger?だとこれらが一発で解決するので便利なんですよ。

それならもうスクリプトで作れよという声が聞こえてきそうですが
思いついて作ってみたのがこちら
ループ
  条件分岐:スクリプト「Input.trigger?(:C)」
    スイッチAをonにする
  それ以外の場合
    スイッチAをoffにする
  ウェイト:1F
以上繰り返し

並列処理で作りますが、並列処理による繰り返しではなく
ループによる繰り返しをさせることでやや強引に毎Fチェックさせます。
ウェイトを入れておかないとフリーズするので注意。

一応軽くチェックしてみたところ
・問題となっていた判定もれは解消
・特に重くなったようには見えない
・ページ切り替えや場所移動でちゃんと処理が中断される
という感じなのでこれで大丈夫なんじゃないかと。

拍手[8回]

PR
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Copyright © へぷたなすくろーる All Rights Reserved
Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
忍者ブログ / [PR]