プレイヤーが移動している場合にスイッチを操作

hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

プレイヤーが移動している場合にスイッチを操作

投稿記事by hogehoge » 2017年10月14日(土) 15:46

プレイヤーが移動している間、スイッチを操作する方法を探しています。方向キー入力の際にスイッチを操作するという方法も考えたのですが、方向キーが入力されている間だけ(方向キーを一瞬だけ押しプレイヤーを移動させた場合、その後の移動のモーションの最中に判定がされない)だったり、クリックによる移動の際は全く反応しないという欠点があり、うまくいきませんでした。
何かいい方法がありましたら、教えていただけませんでしょうか?

アバター
あっすん
記事: 10
登録日時: 2017年9月29日(金) 11:26

Re: プレイヤーが移動している場合にスイッチを操作

投稿記事by あっすん » 2017年10月14日(土) 19:55

こんばんは。

コード: 全て選択

this.character(id).isMoving()


上記コードでキャラクターが移動中か、判定ができます。
移動中ならtrue、停止中ならfalseを返します。
idに-1でプレイヤー、0でイベント自身、1以上で対応するイベントIDの判定となります。

試しに上記コードを使用して並列処理のイベントを組んでみました。
途中のウェイト5フレーム分ですが、
ツクールの仕様?でキャラクターが2マス以上移動するというのは厳密には「1マス移動→停止」を
繰り返して連続的な移動、となっているようなので
最初の条件分岐で仮に「停止」と判定されてもそれはツクール仕様上の停止なのか、もしくは
移動操作をせずに停止しているのかを判定するために5フレーム間をあけて再度条件分岐を実行し
それでも「停止」と判定されたならそれは本当に移動操作をせずに停止をしている…という具合です。
5フレームというのは私の方でこれくらいあければ大丈夫かな?という感じであけたものですので
hogehogeさんの方で調整してみて下さい。
スクリプトを組めればもっと厳密な判定が出来るのだとは思うのですが私の力量ではこの辺りが限界で…。

※ちなみに、ウェイトを使用せずに条件分岐1つだけで組んだイベントを実行すると移動中に
ピクチャの表示、消去を繰り返してチカチカしてしまいます。

以上、ご参考になれば。
 
添付ファイル
001.png
最後に編集したユーザー あっすん on 2017年10月15日(日) 10:59 [ 編集 1 回目 ]
hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

Re: プレイヤーが移動している場合にスイッチを操作

投稿記事by hogehoge » 2017年10月15日(日) 10:19

>>あっすん様
返信ありがとうございます!使用させていただいたところ、理想通りの動きをしてくれました!
ツクールの仕様についても教わったイベントを組んでみたところ、問題なく動いてくれました!
ありがとうございます!
hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

Re: プレイヤーが移動している場合にスイッチを操作

投稿記事by hogehoge » 2017年10月16日(月) 01:19

すみません、再び質問失礼いたします。
付かぬ事を聞くようで申し訳ないのですが、止まっている場合を判定する記述というのはあるのでしょうか…?
アバター
あっすん
記事: 10
登録日時: 2017年9月29日(金) 11:26

Re: プレイヤーが移動している場合にスイッチを操作

投稿記事by あっすん » 2017年10月16日(月) 02:09

こんばんは。
hogehoge さんが書きました:止まっている場合を判定する記述というのはあるのでしょうか…?

停止中を判定する記述もありますよ。

コード: 全て選択

this.character(id).isStopping()


上記コードでキャラクターが停止中かを判定できます。
停止中ならtrue、移動中ならfalseを返します。
idは移動中と一緒でidに-1でプレイヤー、0でイベント自身、1以上で対応するイベントIDの判定となります。

以上、ご参考になれば。
hogehoge
記事: 63
登録日時: 2016年7月29日(金) 21:28

Re: プレイヤーが移動している場合にスイッチを操作

投稿記事by hogehoge » 2017年10月19日(木) 12:41

>>あっすん様
重ね重ねありがとうございます!
単純にisstopで処理しようとしていました…

“MV:質問” へ戻る