お知らせ掲示板 | 質問掲示板 | 不具合報告掲示板 | 機能要望掲示板 | 雑談掲示板

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
24 / 101 ツリー ←次へ | 前へ→

SP.CLBXY命令とシステム変数の不具合 空猫 2013/1/5(土) 13:10

Re:SP.CLBXY命令とシステム変数の不具合 ぽてと 2014/9/16(火) 0:13
修正します 穂乃井 2014/11/8(土) 22:58

Re:SP.CLBXY命令とシステム変数の不具合
 ぽてと  - 2014/9/16(火) 0:13 -
  
ぽてとです。

ちょっと気になりましたので調べてみました。
空猫さんの内容からERIS側の問題かと思っています。
確認したバージョン:YU-RIS Beta4.7 ver 0.478/0.12a

問題点としては以下の2点があると思います。
問題点1:CTRLを押した状態では、@_MOUSE_Lが0
問題点2:CTRLを押した状態で、左クリックを押し続けても@_MOUSE_Lが2
※この問題点はERIS起動後に発生する。

---------------------------------
問題点1について
○現象
メイン画面設計にて\BT.KEY.S(CTRL)を設定した状態で、ERIS起動後にCTRLを押し続けると@_MOUSE_Lが0になり続ける。

○再現方法(確認方法)
1.GO[#=es.ERIS]の実行前に確認用スクリプトを実行中にCTRLを押し続ける。
結果は@_MOUSE_Lは増加し続ける。
2.#SCENARIO_STARTの実行後に確認用スクリプトを実行中にCTRLを押し続ける。
結果は@_MOUSE_Lは0になり続ける。
3.メイン画面設計にて\BT.KEY.S(CTRL)をコメントアウトした状態で、#SCENARIO_STARTの実行後に確認用スクリプトを実行中にCTRLを押し続ける。
結果は@_MOUSE_Lは0になり続ける。

//確認用スクリプトここから
CG[ID=TX Z=1 SX=300 SY=100 FILE=""]
LOOP[]
  CGACT[ID=TX RECTPAINT3=1 SET=0]
  CGACT[ID=TX TEXT=1 SETSTR=$(@_MOUSE_L)]
  WAIT[FRAME=1]
LOOPEND[]
//確認用スクリプトここまで

1と2と3の結果から、ERIS起動後のボタン押し続ける処理に問題があると分ります。

○具体的な箇所と説明
es_Button.yst
#=es.BT.GOSUB.EXEC
3587行目:@_MOUSE_L=2
を実行した際に@_MOUSE_Lは2ではなく、0が設定される。
(理由は不明、おそらくエンジン側で返却値とERIS側の設定値の差にあり、現時点は0とし、次回押下時の値を変更していると思われる)
CTRLを押し続けている限り、左クリックをしていないため@_MOUSE_Lは0となる。

当該行をコメントアウトすると、@_MOUSE_Lは増加し続けます。

○問題点1の見解
\BT.KEY.Sで登録されたボタンを押下し続けると、@_MOUSE_Lは0が代入され続ける。
(次回押下時の値を変更していると思われるため)
\BT.KEY.S(CTRL)を\BT.KEY.S(ALT)でも結果は@_MOUSE_Lに0が代入される事を確認。
以上の結果から#=es.BT.GOSUB.EXECの3587行目:@_MOUSE_L=2で左クリックを初期化する必要があるのかどうかという議論が発生しますが、この行が原因です。
ですので、何らかの回避策が必要になるのではないかと思います。
この行をコメントアウトすると問題解決できますが、各ボタンの#ボタン名.ONの前に@_MOUSE_Lを初期化しない場合の影響がどのようになるのか調査していませんので注意が必要です。


---------------------------------
問題点2について
○現象
メイン画面設計にて\BT.KEY.S(CTRL)を設定した状態で、ERIS起動後にCTRLを押し続けながら左クリックをすると@_MOUSE_Lが2になり続ける。

○再現方法(確認方法)
問題点1の再現方法(確認方法)の1〜3の状態で、CTRLを押し続けながら左クリックをする。

1と2と3の結果から、ERIS起動後のボタン押し続ける処理に問題があると分ります。

○具体的な箇所と説明
以下を修正して、1〜3を繰り返します。
es_Sprite.yst
#=es.EF.TASK.MAIN
修正前1498行目:@_MOUSE_L=2
修正後1498行目:@_MOUSE_L=3

実行を確認すると、@_MOUSE_Lが2で固定されていたものが3で固定される。
該当箇所はデバッグモード時のみ実行されるためリリースモードで実行すると@_MOUSE_Lが2で固定される。
es_Button.yst
#=es.BT.GOSUB.EXEC
修正前3587行目:@_MOUSE_L=2
修正後3587行目:@_MOUSE_L=3

この状態の時にリリースモードで実行すると@_MOUSE_Lが3で固定される。
当該行をコメントアウトすると、@_MOUSE_Lが増加し続ける。


○問題点2の見解
\BT.KEY.Sで登録されたボタンを押下し続けると、@_MOUSE_Lは0が代入され続ける。
(次回押下時の値を変更していると思われるため)
この状態で、左クリックを押下すると、@_MOUSE_Lは2で固定となる。
この2が設定されている箇所は、ボタン命令と演出タスク内のデバッグ部分の2か所。(その他に存在するかは未調査)
以上の結果から問題点1とデバッグ部分の2か所の回避策が必要になるかと思います。
他の箇所の影響がどのようになるのか調査していません。


---------------------------------
es_Button.ystの3587行目:@_MOUSE_L=2をコメントアウトすればいいだけの問題なら話は簡単ですが、根が深そうな事象の気がします。
深く確認したわけではありませんが\BT.KEY.S(CTRL)の状態で\BT.KEY(MOUSE_R)で右クリックしても問題は見つかりませんでした。
ですので、\BT.KEY.Sで登録したボタンを押下し続けながら左クリックをする場合にのみ問題が発生する事象だと思います。
引用なし
パスワード

修正します
 穂乃井 WEB  - 2014/11/8(土) 22:58 -
  
>ぽてとです。
>
>ちょっと気になりましたので調べてみました。
>空猫さんの内容からERIS側の問題かと思っています。
>確認したバージョン:YU-RIS Beta4.7 ver 0.478/0.12a
>
>問題点としては以下の2点があると思います。
>問題点1:CTRLを押した状態では、@_MOUSE_Lが0
>問題点2:CTRLを押した状態で、左クリックを押し続けても@_MOUSE_Lが2
>※この問題点はERIS起動後に発生する。
>
>---------------------------------
>問題点1について
>○現象
>メイン画面設計にて\BT.KEY.S(CTRL)を設定した状態で、ERIS起動後にCTRLを押し続けると@_MOUSE_Lが0になり続ける。
>
>○再現方法(確認方法)
>1.GO[#=es.ERIS]の実行前に確認用スクリプトを実行中にCTRLを押し続ける。
>結果は@_MOUSE_Lは増加し続ける。
>2.#SCENARIO_STARTの実行後に確認用スクリプトを実行中にCTRLを押し続ける。
>結果は@_MOUSE_Lは0になり続ける。
>3.メイン画面設計にて\BT.KEY.S(CTRL)をコメントアウトした状態で、#SCENARIO_STARTの実行後に確認用スクリプトを実行中にCTRLを押し続ける。
>結果は@_MOUSE_Lは0になり続ける。
>
>//確認用スクリプトここから
>CG[ID=TX Z=1 SX=300 SY=100 FILE=""]
>LOOP[]
>  CGACT[ID=TX RECTPAINT3=1 SET=0]
>  CGACT[ID=TX TEXT=1 SETSTR=$(@_MOUSE_L)]
>  WAIT[FRAME=1]
>LOOPEND[]
>//確認用スクリプトここまで
>
>1と2と3の結果から、ERIS起動後のボタン押し続ける処理に問題があると分ります。
>
>○具体的な箇所と説明
>es_Button.yst
>#=es.BT.GOSUB.EXEC
>3587行目:@_MOUSE_L=2
>を実行した際に@_MOUSE_Lは2ではなく、0が設定される。
>(理由は不明、おそらくエンジン側で返却値とERIS側の設定値の差にあり、現時点は0とし、次回押下時の値を変更していると思われる)
>CTRLを押し続けている限り、左クリックをしていないため@_MOUSE_Lは0となる。
>
>当該行をコメントアウトすると、@_MOUSE_Lは増加し続けます。
>
>○問題点1の見解
>\BT.KEY.Sで登録されたボタンを押下し続けると、@_MOUSE_Lは0が代入され続ける。
>(次回押下時の値を変更していると思われるため)
>\BT.KEY.S(CTRL)を\BT.KEY.S(ALT)でも結果は@_MOUSE_Lに0が代入される事を確認。
>以上の結果から#=es.BT.GOSUB.EXECの3587行目:@_MOUSE_L=2で左クリックを初期化する必要があるのかどうかという議論が発生しますが、この行が原因です。
>ですので、何らかの回避策が必要になるのではないかと思います。
>この行をコメントアウトすると問題解決できますが、各ボタンの#ボタン名.ONの前に@_MOUSE_Lを初期化しない場合の影響がどのようになるのか調査していませんので注意が必要です。
>
>
>---------------------------------
>問題点2について
>○現象
>メイン画面設計にて\BT.KEY.S(CTRL)を設定した状態で、ERIS起動後にCTRLを押し続けながら左クリックをすると@_MOUSE_Lが2になり続ける。
>
>○再現方法(確認方法)
>問題点1の再現方法(確認方法)の1〜3の状態で、CTRLを押し続けながら左クリックをする。
>
>1と2と3の結果から、ERIS起動後のボタン押し続ける処理に問題があると分ります。
>
>○具体的な箇所と説明
>以下を修正して、1〜3を繰り返します。
>es_Sprite.yst
>#=es.EF.TASK.MAIN
>修正前1498行目:@_MOUSE_L=2
>修正後1498行目:@_MOUSE_L=3
>
>実行を確認すると、@_MOUSE_Lが2で固定されていたものが3で固定される。
>該当箇所はデバッグモード時のみ実行されるためリリースモードで実行すると@_MOUSE_Lが2で固定される。
>es_Button.yst
>#=es.BT.GOSUB.EXEC
>修正前3587行目:@_MOUSE_L=2
>修正後3587行目:@_MOUSE_L=3
>
>この状態の時にリリースモードで実行すると@_MOUSE_Lが3で固定される。
>当該行をコメントアウトすると、@_MOUSE_Lが増加し続ける。
>
>
>○問題点2の見解
>\BT.KEY.Sで登録されたボタンを押下し続けると、@_MOUSE_Lは0が代入され続ける。
>(次回押下時の値を変更していると思われるため)
>この状態で、左クリックを押下すると、@_MOUSE_Lは2で固定となる。
>この2が設定されている箇所は、ボタン命令と演出タスク内のデバッグ部分の2か所。(その他に存在するかは未調査)
>以上の結果から問題点1とデバッグ部分の2か所の回避策が必要になるかと思います。
>他の箇所の影響がどのようになるのか調査していません。
>
>
>---------------------------------
>es_Button.ystの3587行目:@_MOUSE_L=2をコメントアウトすればいいだけの問題なら話は簡単ですが、根が深そうな事象の気がします。
>深く確認したわけではありませんが\BT.KEY.S(CTRL)の状態で\BT.KEY(MOUSE_R)で右クリックしても問題は見つかりませんでした。
>ですので、\BT.KEY.Sで登録したボタンを押下し続けながら左クリックをする場合にのみ問題が発生する事象だと思います。


どうもです。細かな検証有り難うございます。
ご指摘の通り ERIS 内部の問題でした。
他のボタンが同時に反応してしまわないようにする為の措置だったのですが、
もともといい実装では無かったので、次回更新で修正したいと思います。
ついでにフォルダ変数機能を使用してボタンまわりも少し整理します。
引用なし
パスワード

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
24 / 101 ツリー ←次へ | 前へ→
22,931
(SS)C-BOARD v3.8.1β4 is Free.