言語切り替え

距離センサーを使って衝突回避ゲーム

糸通しや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);

完成したプログラム