TeamworkCastが配信している、PICO-8のチュートリアル動画の解説を連載中です。
前回はこちら。
そして今回の動画はこちらになります。
【解説メモ】
世のゲームは、毎秒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 を追加
【自分の感想】
ミスの条件、点数などが修飾されて、ゲームらしくなってきた。
たぶん、ちょっとした趣味でのゲームづくりなら、これで完成のようになるが、まだまだ先が長いということは、いろんなブラッシュアップがあるのだと思う。
そういう、細かい所に手を伸ばす事が、ゲームのクオリティや面白さを上げる。
コメント