“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

148.HSPでゲームを作ろう:培養臼(BAIOUS) その25

前回の続き。
ということで、自ウィンドウがアクティブじゃないときにキースキャンをしないフラグ設定すれば終わりじゃん!と思ったら、getkeyにそんなフラグはないのね…(できるなら誰か教えて偉い人w)

幸い、アクティブなウィンドウIDを取得することができ、HSP以外のウィンドウがアクティブ=自ウィンドウが非アクティブかは、-1が返ってくるか否かで判定できることがわかった。なので、アクティブウィンドウIDを調べて、0以上のときだけJStick命令を実行すればよさげ。
いちいちアクティブウィンドウIDを調べるコードを書かなきゃだめかと思って調べると、「hspdef.as」をインクルードしておけば、ginfo_actと書けば、現在のウィンドウIDが分かるらしい。便利。

ということで、培養臼のソースに組み込み始めたのだが、ふとこの処理をこれから先作るプログラムにもやらなきゃダメなのかと思った。正直避けたい。
「PAD設定さん」は、幸いソースも公開されている。そこで、JStick命令内で使用しているgetkeyを、非アクティブウィンドウ時は取得しないように処理を加えることにした。

これで、非アクティブウィンドウ時は、キー操作を受け付けなくできた。
と、安心していたら、ジョイスティック操作はまだ受け付ける…
どうやら、ジョイスティックの操作を取得する処理部分も、ウィンドウのアクティブ状態に関わらずすべて受け付けるらしい。

ということで潔くJStick命令の冒頭で、非アクティブウィンドウならそのままreturnするようにした。
培養臼で試す限りは、問題なさそうなので、これで対処を終了した。
新しいPCとかに移行したり、バージョンアップしたときは注意が必要だな。