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

Breakout #9 - Game States - Pico-8 Hero PICO-8
Breakout #9 - Game States - Pico-8 Hero

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

前回はこちら

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

Breakout #9 – Game States – Pico-8 Hero

【解説メモ】

世のゲームは、毎秒60分の1フレームで動作している

PICO-8では、_UPDATE() だと30分の1フレーム、_UPDATE60() だと60分の1フレーム

今まで作ってきたものは、_UPDATE() で30分の1フレームだから、_UPDATE60() にしたら、速さが倍になるので、移動などのパラメータを2分の1にして調整

_DRAW() を_DRAW_GAME() に変更、_DRAW_GAME() 関数内でモードをチェックして、該当の描画を実行

UPDATE_START()でボタンチェックをし、START_GAME() を実行する

START_GAME() 内にMODE=”GAME”

_DRAW_GAME() 内、RECTFILL() 命令をCLS(1) に変更

画面上部に黒の帯をRECTFILL() で描画、FILESを表示

黒帯でボールが見えなくなるので、ボールの上部の当たり判定を変更

=は代入、==は比較

一番下にボールが来たら(パドルで取りそこねた)、ミスにする

SERVEBALL()関数を作り、STARTGAME() 内のパラメータ設定を移し、最後にSERVEBALL() を実行

確認の実行時に、ミスをすると、LIVES がどんどん減っていき、サーブボールが行われない問題
理由は、一番下にボールが来たチェックをするコードが、BALL_X=NEXTX と BALL_Y=NEXTYの前で行われている為

LIVES-=1 の下に LIVES<0になったらGAMEOVER() を実行

DRAW_GAMEOVER() 内のCLS()は無くす

GAMEOVER() 関数を記述

DRAW_GAMEOVER() にRECTFILL()で帯を描き、”GAME OVER”を表示させる

UPDATE_START() の内容をUPDATE_GAMEOVER()内にコピー

STARTGAME() 内にPOINTS=0を追加

DRAW_GAME() 内に”SCORE:”を表示

UPDATE_GAME() 内にパドルとボールの衝突チェック内で POINTS+=1 を追加

【自分の感想】

ミスの条件、点数などが修飾されて、ゲームらしくなってきた。
たぶん、ちょっとした趣味でのゲームづくりなら、これで完成のようになるが、まだまだ先が長いということは、いろんなブラッシュアップがあるのだと思う。
そういう、細かい所に手を伸ばす事が、ゲームのクオリティや面白さを上げる。

コメント

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