| 追記 ( No.1 ) |
- 名前:オーダン 日時:2025/07/29 17:08
追記です。
PCでリリースしたゲームのSWITCH移植版が出来たのでテストプレイしたら、この問題に気が付きました。
SWITCHだと特に斜め移動が遅くなっている感じでした。
GetJoypadAnalogInput
は環境によって動作が違うことはあるのでしょうか?
|
| Re: GetJoypadAnalogInputについて ( No.2 ) |
- 名前:管理人 日時:2025/07/30 02:27
GetJoypadAnalogInput で取得できる値は小さな入力を無効化する『デッドゾーン』の
処理は行っていますが、上限の値に対する処理は行っていませんので、
スティックを倒しきった際に取得できる値に差が発生するのはデバイスによるものとなります
スティックを倒しきったときの値が最大値( ±1000 )になるかどうかについては
デバイス毎に異なりますので、オプションメニューなどで『±700以上は倒しきっていると判定する』等の
調整項目を追加して対応する必要があると思います
SwitchやPS4等のコンソール機については個体差はありませんので、
各プラットフォーム毎に固定の調整値で問題ないと思います
> と以前のバージョンではなっていたような気がしてそのような前提で実装していたのですが、
> (違っていたらすみません)
2007年頃のプログラムを確認した限りでは現在と同じ処理を行っていましたので
仮に取得できる値が変わったのだとしますと、DXライブラリの処理が変わったのではなく
デバイスが返す値に変化があったのだと思います( デバイスドライバによるものなのか、
OSによるものなのかは不明ですが… )
> GetJoypadAnalogInput
> は環境によって動作が違うことはあるのでしょうか?
はい、デバイスが返す値次第となりますので、SwitchやPS4などでも取得できる値には差があると思います
Windowsの場合は使用するデバイス毎に差が発生する可能性があります
|
| Re: GetJoypadAnalogInputについて(解決しました) ( No.3 ) |
- 名前:オーダン 日時:2025/07/30 09:36
ご回答ありがとうございます。解決できました。
デバイスによって出る値に差があったのですね。
そういえば以前の「どちらかが必ず1000が出た」ときは今と違うコントローラーを使っていたので、
それはデバイスによる違いだったのだと納得できました。
傾き加減によって自機の移動速度を変えられるという処理は諦めて、
傾き方向に移動(一定速度)はできるという処理に直したら快適に動作するようになりました。
|