【7】いっしょにまなぼう!

パドルとボールの衝突チェックを視覚化 PICO-8
パドルとボールの衝突チェックを視覚化

TeamworkCastが配信している、PICO-8のチュートリアル動画の解説を連載中です。

前回はこちら

そして今回の動画はこちらになります。

Breakout #7 – More Collision – Pico-8 Hero

【解説メモ】

どこからでもアクセス出来るグローバル変数は、_INIT関数内に宣言(&定義)する

自作関数内だけで変数を使う時は、変数の宣言前にLOCALをつけると、グローバル変数とは別になる。

パドルの中にボールが入ってしまう減少がある(ボールよりもパドルの移動量が大きいため)

上記の不具合を無くすために、角度をチェックする(別のプログラムを作る)

【自分の感想】

わたしは、角度をチェックするプログラムが何を意味しているのか わからず、そのプログラムを解析して、理解した。

どういう意味かというと、パドルの正面にボールが当たったのか、それとも横側に当たったのかをチェックしている。

ボールの中心とパドルの角を結んだ角度と、ボールの方向の角度の大きさを比べて、横に当たるのかがわかる。

それでも頭の中で こんがらがっていたので、自分に わかりやすいように、プログラムを修正してみた。

↓そのプログラムの実行結果

パドルとボールの衝突チェックを視覚化
パドルとボールの衝突チェックを視覚化

灰色の四角がパドル(のつもり)、緑色の円がボール(のつもり)で、矢印キーでボールを動かし、マウスやトラックパッドでボールの進行方向を動かします。

↓動きの動画キャプチャ

チェックプログラムの動作
チェックプログラムの動作

白い点がそれぞれのポイント、ワインレッドの線がボールの進行方向、茶色の線がパドルの角とボールの中心を結ぶ線です。

一番下の「RESULT」でFALSEかTRUEの結果を表しています。

丁度、ワインレッドの線がパドルの横に掛かると、TRUEになるのがわかるでしょうか?

↓そのチェックプログラムのカートリッジです。

test.p8
test.p8

今回は、解析に結構かかりました。

コメント

タイトルとURLをコピーしました