![見出し画像](https://assets.st-note.com/production/uploads/images/66358932/rectangle_large_type_2_84766c4053726ffd183514507b38cc58.png?width=800)
【Robo Blocksの使い方】ディスプレイのタッチを処理する_おまけ
ソフトバンクロボティクスでPepperを使ったプログラミング教育を担当してる佐藤です!
前回の記事ではタブレットのタッチを処理する方法を紹介しました。こちらではしっかり作り込む方法を紹介しましたが、さっと作りたい時に楽ができる方法をご紹介します。
ボタンを大きくする
前回の記事でご紹介した以下のパターンですとボタンの領域を指定するために軸(赤線)が横4本・縦2本の計6本必要になります。
![画像1](https://assets.st-note.com/production/uploads/images/66359997/picture_pc_3359801cd3920ba2c47e9f9cbacf0ec0.png?width=1200)
この線が少なければ少ないほど楽に実装できることになります。
出来るだけ隙間を埋めるためにボタンを大きくしてみます。
![スクリーンショット 2021-11-24 20.37.17](https://assets.st-note.com/production/uploads/images/66361205/picture_pc_4f4ee10c3d840741fa2971c2cb9a7edc.png?width=1200)
こうした場合、厳密に考えると以下のようになり軸の数は変わりません。
![スクリーンショット 2021-11-24 20.39.30](https://assets.st-note.com/production/uploads/images/66361341/picture_pc_a5c8f24cdc5b8288818ef7b791406093.png?width=1200)
しかしながら、端部分より指の幅の方が大きいぐらいにしておくと物理的に触ることが非常に難しくなるので、そこはもうボタンの一部だと考えてしまうと、端の軸は無視できます。
![スクリーンショット 2021-11-24 20.43.16](https://assets.st-note.com/production/uploads/images/66361558/picture_pc_a2bd7b14a3e477b592821832c7151a6d.png?width=1200)
残るは中央の軸ですが、これも細いのでここをタッチされるのはレアケースだと割り切って、真ん中一本にしてしまいます。
![スクリーンショット 2021-11-24 20.44.45](https://assets.st-note.com/production/uploads/images/66361667/picture_pc_093a5bbfadfeee4dfccd027bf93bcb82.png?width=1200)
こうすると6本あった軸を1本にすることができました。
Pepperに「○か×か、ボタンを触ってね」など発話をさせて、触れば進むことを分かりやすく誘導すれば、これぐらい簡略化しても何の問題もなく使えるケースが多いと思います。
選択肢の数が多くなった場合も同様です。
四択なら以下のようにボタンのサイズが大きい画像を用意すると、軸2本で処理できます。
![スクリーンショット 2021-11-24 20.49.44](https://assets.st-note.com/production/uploads/images/66361966/picture_pc_506f0d4117fe0de9b7515e4ebe23812e.png?width=1200)
数字を入力するようなケースも同様です。
以下のように数字を並べると処理するために必要な軸の数が多くなりますが・・・
![Robo Blocks サンプル用画像素材 (19)](https://assets.st-note.com/production/uploads/images/66362168/picture_pc_0b1c442d178a282801b57e8d5e9f5815.png?width=1200)
思い切ってこう並べてしまうと処理としてはとても楽になります。
![Robo Blocks サンプル用画像素材 (20)](https://assets.st-note.com/production/uploads/images/66362239/picture_pc_a524af86eca3d6435534f15793a2edeb.png?width=1200)
とはいえ、入力のしやすさは前者の方が上だと思いますので、作り込む時間があるかどうかでどういう画面にするのか検討すると良いと思います。
まとめ
条件分岐が増えると設定が難しくなって、思った通りに反応しない・違うボタンが反応するなどのバグが発生しやすくなります。
プログラミングに不慣れな内はレイアウトでなんとかしてしまうというのも良いのではないかと思いますので、複雑なタッチ処理を受け付ける画面は簡略化して楽にプログラムを作りましょう!
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ソフトバンクロボティクス株式会社 ホームページ
https://www.softbankrobotics.com/jp/
Pepper教育関係者フォーラム
https://pepper-schoolchallenge.com/
Pepper for Education
https://www.softbankrobotics.com/jp/product/education/
STREAMチャレンジ
https://www.softbankrobotics.com/jp/product/academy/stream/
━━━━━━━━━━━━━━━━━━━━Pepperブログ編集部━┛