距離センサーを使って衝突回避ゲーム
糸通しやFlappy Birdのように、迫りくる壁を回避するゲームです。
距離センサーによって自分の手を動かして操作するので、直感的に遊べます。
コンテンツ
今回すること
糸通しやFlappy Birdのように、迫りくる壁を回避するゲームです。
距離センサーによって自分の手を動かして操作するので、直感的に遊べます。
用意するもの
- obniz Board
- 電源
- GP2Y0A21YK0F(赤外線距離センサー) x1
- ブラウザが使えるPC/スマートフォン x1
組み立て方
配線
以下の表や図のように配線します。
obniz | GP2Y0A21YK0F (赤外線距離センサー) |
---|---|
0 | Vcc |
1 | GND |
2 | signal |
プログラム
HTML5のcanvasを使ってブラウザ内に描画します。
canvasの詳しい使い方は、こちらを参照して下さい。
<canvas id="field" width="300" height="300"/>
let canvas = document.getElementById('field'); let ctx = canvas.getContext('2d');
距離センサーからの入力は inputHeight 変数に自動で入るように設定しておき、使いたいタイミングで使うようにします。
let inputHeight = 0; let obniz = new Obniz("OBNIZ_ID_HERE"); obniz.onconnect = async function () { let sensor = obniz.wired("GP2Y0A21YK0F", {vcc:0, gnd:1, signal:2}); sensor.start(function (height) { inputHeight = height; }) };
コードの中の {vcc:0, gnd:1, signal:2} は距離センサを接続した場所によって変えます。「配線」にて同じように接続していれば、そのままで大丈夫です。
ここで取得した値は、毎フレーム内の処理の際に入力値として使っています。
let input = (300 - inputHeight); input = Math.min(Math.max(0, input), canvas.height); dot.push(input);
完成したプログラム