New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
タッチ環境でもタッチを無効にするコマンドラインオプションの追加 #196
Comments
「システム互換性関連のオプション」の一種として追加するのが妥当でしょうか。 |
互換を重視しつつタッチ機能も使いたい場合の使用を想定しています。 タッチデバイス有効の場合に問答無用でtrueにされるのは,最初に触れたように「気づかない罠」が潜んでおり, もし真ん中の項目のオプション対応が困難ならコンパイル時のdefineマクロのオプションを追加する方向でも構いません。 |
「吉里吉里2互換重視な吉里吉里Z」を独自にリリースしたいような場合のデフォルトと言うのがわかりません。 「タッチデバイス有効の場合に問答無用でtrueにされる」と言うか、そもそも無効な場合はイベント自体発生しないので、trueにする意味がないためfalseになっています。 |
ここでいう「互換重視」とは,吉里吉里2で動いていたスクリプトに手を加えることなく吉里吉里Zで動かすという意味です。 個人的に,2からZの移行をスムーズに行えるような環境があってしかるべきと考えており,そのためには吉里吉里Z用に既存のスクリプトに手を加えるのはできるだけ避けたいという要望があります。 じゃあ互換用にタッチを完全無効のオプションをデフォルトにすればいいと思われるかもしれませんが,そうすると移行後に吉里吉里Zのタッチの恩恵を受けるための手間(オプションの変更が必須)が発生して,「2からZの橋渡し」としてそれはどうなんだと思う次第です。真ん中のオプションがあればスムーズな移行ができて実に合理的だと思うわけです。 ちなみに,公開はしていませんが,吉里吉里2向けにZのタッチ機能相当のイベントを提供するkztouch.dll も(実装の都合で完全な互換ではありませんが)作ってあります。
現状で吉里吉里Zで提供しているゲームでタッチ操作が全く反応しない作品(体験版ですが)を確認しております。 |
「2からZの移行をスムーズに行えるような環境があってしかるべき」と言うのは同意ですが、後半の「既存のスクリプトに手を加えるのはできるだけ避けたい」と言う部分については別意見ですね。 それはともかく、対応は可能なようにオプションとデバッグオプションを追加しました。 デフォルト無効とするのはデバッグオプションにしました。 |
個人的には以下がいいなーと思います
初期値を false にしてしまうと、ではどういう判定で有効にすればよいのか |
これは既に System.touchDevice がありますね。tdほげほげの論理和が返るようです。 |
System.touchDevice ドキュメントへの記載忘れてましたね。 Zは確か最初から現在の仕様でしたが、ここで仕様を変更するのはやはり反対です。 1.タッチで出来ないマウス操作等
2.マウスで出来ないタッチ操作
1の出来ない操作は致命的に面倒で、ホバー系操作のヒント表示などは説明が見られないのでよくわからないまま進めることになります(もしくはマニュアルを読む)。 2は+αの要素ですが、1はマイナス要因なのでタッチデバイスが普及していることから早期に解決した方が良いと思われるものです。 現段階では、KAG3にタッチ操作系を取り入れて同梱するのが解決への近道でしょうか。 以上の理由により、現在のままが望ましいと考えていますが、デフォルトfalseの方がより良い点等ありますでしょうか? |
動作確認したのでマージ。 |
Window.enableTouchはタッチデバイスがある場合においてデフォルトでtrueになる仕様ですが,
吉里吉里2からの移行でonMouse* イベントしか考慮されていないスクリプトにおいて,
この仕様が予期しないバグ(タッチのみの環境で全く操作できない)を発生させる場合があります。
非タッチ環境でしかデバッグできないユーザーも多いので,
この問題に全く気付かずゲームがリリースされてしまう可能性があります。
そこで,ユーザー側でも何かしらこの問題に対処できるよう,-touchdevice のような
タッチデバイスの有効・無効を設定するオプションを追加することを希望いたします。
(proc{Register,Unregister}TouchWindowをNULLにしてしまうような挙動)
くらいのパターンを指定できれば十分でしょうか?
ご検討ください。
The text was updated successfully, but these errors were encountered: