> ・jstick命令のポートは1台ならOで良いのですか?
どうやら0とは限らないようです。
「優先デバイス」に特定のデバイス(コントローラ)を指定した場合、そのデバイスにポート0が強制的に割り当てられます。
もし優先デバイスに設定したデバイスを接続せずに他のコントローラを接続した場合、接続したコントローラはポート1以降が割り当てられるようです。
なお、設定はコントロールパネルのゲームコントローラの詳細設定で行えます。
昔調べたときの私の認識は間違っていたようです…。
先ほどVistaで色々試して確認してみたところ、上記のような結果になりました。
結局どのポートにコントローラがつながっているか分からないので、事前に使用可能なコントローラが接続されているポート番号を調べるようにしたほうがいいでしょう。
ということでサンプル。
#include "mod_joystick.as"
;使用可能なidを検索
id = 0
repeat 16
jstick key, id
if stat = 0 : break
id++
loop
*main
redraw 1 : await 16 : redraw 0 : color 255, 255, 255 : boxf : color : pos 0,0
jstick key, id
mes "ID : " + id
mes "key : " + key
goto *main
これならコントローラさえ繋がっていれば必ず認識するはずです。
> ・市販のジョイスティックのボタン(特に上下左右)のjstick命令の返り値は共通ではないのすか?
上右下左は1,2,4,8で共通のはずです。方向キーは気にせず使用していいと思います。
しかし、他のボタンは機種やメーカーで配置が異なるため場所と値は必ずしも一致しません。
外見が同じタイプで同じ場所のボタンでも、返す値が異なることがあります。(そんなときでも方向キーはちゃんと同じ値を返します。)
> 通常ゲーム作者はジョイスティックのボタンの設定機能も実装するのですか?
実装する人としない人がいるようです。面倒ですからね…。
方向キー以外で、使うボタンが少なければ、設定は特に設ける必要はないと思います。ある程度なら慣れてしまいます。