Scratchを使って、タブレットでも遊べるゲームを作るため、ゲームに使えるタッチ操作を作ってみました。今回は、アングリーバードみたいに、指やマウスでひっぱって、はなすと飛んでいくパチンコ型アクションを実現します。
パチンコといっても、ギャンブルのパチンコではありません。最初のイラストのように、ゴムをひっぱって弾を飛ばすスリングショット(Sringshot)です。
中央のピンクのマルを、指かマウスでひっぱって動かします。
前回、Scratchで、タッチ操作を検出する方法を調べてみたので、その応用編です。
操作を考える
この操作は、3つの段階に分けることができます。
- ready:何もさわらない
- pull:画面にタッチ。そのまま、指で位置を変える
- go:指をはなす
この3つの状態は、特定のアクションで変化します。
図にすると、こんな感じです。
マルが状態。矢印がアクション。「go」から「ready」には、強制的に戻ります。
プログラミング
この3つの状態に合わせて、プログラムを作っていきましょう。
ここでは、状態ごとにブロックのかたまりを用意します。また、状態をあらわす「status」変数を用意します。
1. 指の動きに合わせる
まずは、指の動きに合わせて動くだけのプログラムです。
「ready」で、タッチされるのを待ちます。スプライトが押されたら「pull」に移行します。「マウスが押された」でなくなるまで、指の位置に合わせて移動して。指を離したら「ready」に戻ります。
指を離した時「0.1秒待つ」が入っているのは、「ready」と「pull」が重なるのを防ぐため。
発射しないので、まだ「go」はありません。
https://scratch.mit.edu/projects/302221441/
2. 指をはなすと飛んでいく
次は、指をはなすと飛んでいくプログラムです。
飛んでいく方向を検出するため、「center」スプライトを用意します。
マウスが押されなくなったら、「goを受け取ったとき」ブロックに移動します。
https://scratch.mit.edu/projects/302229480/
3. 引っぱり量を見えるようにする
引っぱっている動きが分かりやすくなるように、効果を加えます。そのため、指の位置に合わせて、「center」スプライトの向きを変えます。また、「arrow」スプライトの長さで、引っぱっている距離をあらわします。
https://scratch.mit.edu/projects/303202207/
パチンコで発射するゲームを作った
この基本形にルールを追加したのが、こちらのゲームです。
- 中央のマルの中をドラッグ/指で引っぱる
- マウス/指を離すと、発射!
- シカクのターゲットをねらおう
- カベにはねかえると、ポイントアップ!
https://scratch.mit.edu/projects/302458480/
やってみよう
という訳で、パチンコ型アクションゲームを実現するタッチ操作を作りました。ゲームの開発過程は、こちらのスタジオにまとめてあります。
https://scratch.mit.edu/studios/7784941/
これで、タブレットらしいゲームができましたね。
次は、画面上で指をすべらせる「スワイプ」と「フリック」を実現してみたいと思います。
Scratchで、フリック・スワイプ操作を実現してみた。
Heppocode Garage
https://www.catch.jp/heppo-code/2019/05/07/flick-and-swipe/
1件のコメント
1件のピンバック