マガジンのカバー画像

PICO-8でブロック崩しを作ろう

11
ピコピコなゲームエンジン、PICO-8でブロック崩しを作る連載(?)
運営しているクリエイター

2023年4月の記事一覧

PICO-8でブロック崩しを作ろう(ボールの反射角度をコントールする

今回はパドルの動きによって反射するボールの角度が変わるような実装をしてみます。 実際の物理法則を正確にシミュレーションする必要はなくそれっぽく動いてくれればいいので…ボールとパドルがぶつかって反射処理をおこなう際に、 パドルの動き(速度)とボールの動き(速度)が向かい合っている(相対)場合は反射するボールの角度が高くなる パドルの動き(速度)とボールの動き(速度)が同じ方向(並走)の場合は反射するボールの角度が低くなる みたいな実装をすればいけるのではないでしょうか?

PICO-8でブロック崩しを作ろう(スティッキーパドルの実装

今の実装ではスタート時やリプレイ時には、ボールは決まった場所からスタートしますが、それをパドルの上にボールをくっつけて、パドルの動きに合わせて左右に動かすことができるようにします(#13)。 startgame()startgame()でstickyフラグを定義します。 update_game()xボタンを押すとstickyフラグをfalseにします。 ボールの動きの処理のところはstickyフラグが立っていた時はパドルの動きにあわせる処理にします。 ボール発射時、常に

PICO-8でブロック崩しを作ろう(ブロックを追加する

ブロック崩しを作ろうというタイトルにしながら連載5回目にしてようやっとブロック出現です(#10,#11)。 startgame() / buildbricks()startgame()内でブロック一つ分の幅と高さを定義します。 buildbricks()では設置するブロックのx,y,v(表示フラグ)をテーブルで定義します。横11、縦5の55個のブロックをここでは定義しています。 draw_game()draw_game()にブロック描画処理を追加します。 ブロックが表示

PICO-8でブロック崩しを作ろう(スタート/ゲームオーバー/スコア/残機の追加

以前やったことと被る内容もありますが、スタート/ゲームメイン/ゲームオーバーのゲームの遷移状態とスコアや残機を追加することでゲームとして(一応)成立する形にします。 _init() / _update60() / _draw()ボールやパドルの制御用のグローバル変数を定義していた_init()を状態遷移を表すグローバル変数modeの定義だけにします。 ゲームのメイン処理をおこなっていた_update60()はmodeの状態によって各処理を振り分けるようにします。 同様に_d

PICO-8でブロック崩しを作ろう(パドルでボールを反射させよう

今回はパドルでボールを反射させてみます。 動画の#6,#7,#8の内容なのですが、動作が気に入らないので書き換えています。※今後の内容次第では再度書き換えるかも パドルとボールの衝突判定_update()にball_box()を追加してパドルとボールの衝突判定をおこないます。衝突した場合はballのy方向の速度を逆向きにすることで反射する動作になります。 パドルにボールが反射するように動作していますのでこれで終了…と簡単には終わりません。 パドルのサイドにボールが当たっ