フリーゲーム・フリーソフトの開発過程を記録していく、TDtechnic公式ブログです。製品はカテゴリの「ダウンロード場」からダウンロードして頂けます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

こんにちは。操作系を作っていると、必ず絡んでくるのが「優先順位」です。例えば、ダイアログボックスが表示されている時、その真下にあるボタンなどが押せてしまっては困りますね。このように操作系では、画面上での上下関係を実際の入力にも反映させる必要があります。

Windowsでの標準のウィンドウ類(コントロール)には、「フォーカス」という概念があり、このへんの処理を全て裏でやってくれています。よって、例えばWordの上にExcelを重ねて作業している時に、Excel上での操作がWordにまで反映されるということはありません。当たり前のようですがこれもWindowsが裏で処理してくれているからです。

実は、記憶・不死女を始めとするTDtechnicのゲームにはこの機能はありませんでした(他のソフトとの上下関係はWindowsがやってくれます)。そのため、今まではボタンやウィンドウが極力重ならないように設計するか、大量のフラグでゴリ押しして対処していました。

しかし今回はここも無視しません。自前でフォーカスシステムを作りました。蓋を開けてみれば意外と簡単、入力を受け付けるオブジェクトをリストに登録し、リストの最後になっている時のみアクティブ(操作が反映される)にする、という方法で出来ました。アクティブか非アクティブかは入力受付時に自動で判定するため、受付処理を書く側は一切意識する必要ありません(非アクティブの時は無効な値が返ってくるだけです)。ただし元々の入力システムは既にあちこちで使われており、一気に換装するのは危険なため、従来システムも共存出来るように設計しました。なんだか、旧道を残しながら新道を作る道路工事みたいで面白いですね(当方道路マニアにつき、未成道や廃道に多大な興味あり)。全てが新システムに移行出来たら旧システムを廃棄します。
関連記事

[2015/02/20 16:09] | 不死女 -Immortal girl-
|
コメント:
この記事へのコメント:
コメント:を投稿
URL:

パスワード:
非公開コメント: 管理者にだけ表示を許可
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。