【解決済み】並列処理を一時停止させたい

sio
記事: 13
登録日時: 2017年3月14日(火) 13:41

【解決済み】並列処理を一時停止させたい

投稿記事by sio » 2020年7月08日(水) 04:09

同じ質問記事を拝見はしたのですが
実際の使い方が分からなかった為、またもし他に方法があったらと思い新規質問させて頂きました。

↓同質問記事
並列処理を一時停止させる方法
https://tm.lucky-duet.com/viewtopic.php?t=5395
並列処理をイベント最中に停止したい
https://forum.tkool.jp/index.php?threads/%E4%B8%A6%E5%88%97%E5%87%A6%E7%90%86%E3%82%92%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E6%9C%80%E4%B8%AD%E3%81%AB%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%9F%E3%81%84.3663/

下記は当方の状況なります。

・変数で特殊ゲージを作成
・Aというスイッチ=ONで★ループ加算(並列処理)が行われる
・上記並列処理を行っている最中にイベントやメニュー(※コモンによる自作メニューです)を開く
・開いてる最中もループ加算が行われてしまう。

※このイベントやメニューが開いている間、★ループ加算(並列処理)を一時停止させ、
 イベントやメニューを閉じたら引き続き★ループ加算が開始される …という形が理想です。

$gameMap.isEventRunning()で解決できればと思うのですが、実際にどう記述したらよいのでしょうか?
またもしほかにも方法がありましたら教えて頂けると助かります…!


↓自分なりにやってみましたが上手く行きませんでした;;

コード: 全て選択

◆条件分岐:スクリプト:$gameMap.isEventRunning()
  ◆
:それ以外のとき
  ◆ループ
    ◆変数の操作:#0021 ゲージA += 1
    ◆ウェイト:20フレーム
    ◆
  :以上繰り返し
  ◆
:分岐終了
最後に編集したユーザー sio on 2020年7月09日(木) 04:11 [ 編集 2 回目 ]

まったくの初心者ですが作ってみてます。
アバター
たくろう
記事: 22
登録日時: 2020年7月01日(水) 18:18
連絡を取る:

Re: 並列処理を一時停止させたい

投稿記事by たくろう » 2020年7月08日(水) 10:25

sioさん、こんにちは!
別イベントを監視する方法があるんですねー! 勉強になりました!

sioさんが書かれている内容で設定してみたところ、私がイメージした通りの挙動でした。
 →会話イベント中は加算が停止する
 →メニュー開いていると加算が停止する(右クリックで呼び出す通常のメニュー)

「うまくいかなかった」とは具体的にどういうことでしょうか?
「自作メニューを開いてる最中もループ加算が行われてしまう」状態でしょうか?
その場合、会話イベント中も加算されてしまう状態でしょうか?

追記
すみません、それ以外のときのループが不要っぽいですね。
添付した画像の通りでどうでしょう?
添付ファイル
別イベント監視.png
sio
記事: 13
登録日時: 2017年3月14日(火) 13:41

Re: 並列処理を一時停止させたい

投稿記事by sio » 2020年7月08日(水) 19:19

返信ありがとうございます!画像まで添えて下さり大変助かります!
「うまく行かなかった」=加算が止まらない、で合っております。

その点については画像の通りに記述(ループを無くした)ところ、イベント中に一時停止してくれるようになりました!

ただ自作メニュー(コモン)は並列処理で右クリでメニュー内容コモン呼び出しになっているせいか
(イベント認識されず?)加算は一時停止してくれず…

もしや条件分岐をスイッチにして一時停止も出来るのではとやってみたら出来ましたので
下記にコードを書いておきます。

ループ加算(並列処理)は、たくろう様の記述を元に、条件分岐を任意スイッチに変更↓

コード: 全て選択

◆条件分岐:加算一時停止がON
  ◆
:それ以外のとき
  ◆変数の操作:#0001 ゲージA += 1
  ◆ウェイト:30フレーム
  ◆
:分岐終了

任意イベントや任意コモンに↓

コード: 全て選択

◆スイッチの操作:#0002 加算一時停止 = ON
任意内容
◆スイッチの操作:#0002 加算一時停止 = OFF

イベントの上下にスイッチONOFFを毎回挟み、もう一つスイッチを使う事にはなりますが
任意のタイミングで一時停止を行う場合はこんな感じでしょうか?問題ないと良いのですが…!

改めて、$gameMap.isEventRunning()の記述が知れて本当に良かったです、ありがとうございました!
まったくの初心者ですが作ってみてます。

“MV:質問” へ戻る