忍者ブログ
  • 2024.04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2024.06
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/05/03 00:19 】 |
入力処理:ボタンの扱い
ボタンが決まっているハードデバイスの場合、1ボタンを1ビットに対応させ、isOn(BIT_BUTTON1 | BIT_BUTTON2)
getOn() & (BIT_BUTTON1 | BIT_BUTTON2)

のようなコーディングをすることがある。

が、iPhoneのような全面タッチパネルでバーチャルボタンを作るようなデバイスの場合、こういうやり方ができない。

まずボタンの数が決まっていない。ビットに置き換えるためには上限数が見えていないとできない。
状況によって、自由にボタンを増やしたり減らしたりできるのがバーチャルボタンを使う利点になるので、そこを生かすことができるコーディングができるようにしたいところ。

そもそも、ハードデバイスで or 演算をしたい理由は、同じ機能を持つボタンが複数あるからである。
なぜ同じ機能をするボタンが複数あるのかというと、不必要なボタンが存在しているからです。ハードデバイスだから、いらないボタンも常に存在し続けるのです。
だから、同じ機能をするボタンが必要になるということが起こる。AボタンかSTARTボタンでゲームを始める、とか。

バーチャルボタンなら、そういうことは起きないはずで、いらないボタンは消してしまえばいいわけです。
だから、まったく同じ機能をするボタンが複数同時に存在することはあまり考えられない。
一時的に一部の処理が同じになるようなボタンが存在することはあるにしても。

だから、まとめると
・ボタンのビット演算はできなくてよい
・ボタンを自由に追加・削除できる
というところがポイント。

また、複数のボタンが重ねて存在することも可能です。
重なっている部分をタッチすれば、両方のボタンが押されたことになります。
扱いには気をつけるべきですが、常に画面全体を一つのボタンと見なすようにしておくと便利なことがあるかもしれません。

PR
【2011/01/10 01:08 】 | 自作エンジン | 有り難いご意見(0) | トラックバック()
<<前ページ | ホーム |