ピコピコテクノロジービデオゲームを愛し、ゲームプレイもゲーム作りも好きな私の活動記録を不定期に更新しています。コピー2021.07.30TeamworkCastが配信している、PICO-8のチュートリアル動画の解説を連載中です。今回の動画はこちらです。今回は、画面エフェクトのスクリーンシェイクを実装する。_init()〜endの中にshake=0を書き込むソースコードの最後に画面を揺らす新しい関数、doshake()を記述する。endendX座標、Y座標の幅を-16〜16にしてランダムで導き、それにその振れ幅である変数shakeをかけることで、-16〜16内にランダムにカメラが動き、変数shakeに0.95をかけていくことで、少しずつおさまっていくようになる。_draw()〜endの中の頭に、doshake()を記述。thenの後ろにshake+=1を記述して実行する。ボールxパッドで揺らす確認ができたので、先程記述したshake+=1を削除する。thenの後にshake+=0.15を加える。elseの後にshake+=0.4を加える。これで、マルチボールで複数ボールがある時のミスは小さく揺れ(shake+=0.15)、ボールが一つの時は大きく揺れる(shake+=0.4)。explodebrick(_i)〜endの中の最後にshake+=0.4を記述。“h9h/p9p//s9s”にして、爆発ブロックを手前に一列並べるようにした。爆発ブロックを試すが、揺れすぎた揺れは収まらず、ゲームが続行できなくなってしまった。爆発ブロックを1つにしても、似たような結果になってしまった。shake=1endを記述して、shake変数の内容が1よりも大きくならないようにする。“b9b/p9p/sbsbsbsbsbs”にして実行する(爆発の連鎖はしないようにしている)。すると、爆発して隣のブロックが消えるときにしか揺れが起こらない(shake+=0.4の記述がhitbrick(j,false)の後ろだから)。shake=1endをcheckexplosions()関数のexplodebrick(i)の後に移動する。実行すると、また大きな揺れになってしまう。explodebrick(_i)関数内。いないか)をfalseにして存在していないようにし、他のブロックをチェックして隣接していればボールが当たった処理をそのブロックに行うという内容で、その最後にshake+=0.4を実行している。そこで、ゲーム中にshake変数の内容がどうなっているのか調べてみたら(printh関数でコンソールに表示)、ある時に50.175となっていた(0.4を追加しているので100回以上実行されていることになる)。この関数が何度も実行されているということは、関数がどこで呼び出しているかを確認すると、checkexplosions()関数内で実行されている。t要素は、何を意味しているかというと、ブロックの種類を指している。ここでチェックしているのは、t要素だけで、存在のv要素はチェックしていない。ブロックが消えてもあるかのごとく処理されてしまい、予想以上の揺れが生み出されてしまうことになる。checkexplosions()関数は、update_game()で毎度呼び出されている。bricks[i].vを加える(bricks[i].vの内容は、bool値でtrueかfalseのどちらか)。すると、思ったように揺れが起こり収まる。爆発ブロックの揺れを修正これで、爆発ブロックに当たった時に揺れるようになる。rectfill(0,0,127,127,1)とすることで、揺れた時に、背景の1番の色(紺色)が上からはみ出てこないようになる(rectfill()関数で描画しているので、カメラの座標の影響を受け追従する)。今回は、この「揺れ過ぎる現象」の理由を探るために変数などの内容をprinthで表示させたりして、解析を行った(うやむやにしたくなかったので)。消えたブロックもテーブルの中ではデータとして存在していて、ただv要素がfalseになっているだけなんだと思わされた。この「?」を「!」にするために解析作業が、自分の中で面白くなってきている。時間はかかってしまったが、色々なことを知り得たと思う(それが大切と信じている)。コピーtamaonをフォローするtamaon関連記事PICO-8敵の位置が、おかしいPICO-8でスネークゲームをつくっています。カミツキガエルを出現する時に、場所を決めるコードを書いたつもりなのですが、上手くいきません。ヘビの周りから離れて出現させるのに、ヘビの体の上にも表示されてしまう始末。KitでMSXゲームICE-MANの移植をしているが、iPhoneゲームの敷居の高さというか、面倒臭さがどうも自分に合わないようで、疲れてしまう。...PICO-8点数表示PICO-8スネークゲーム「ピコニョロ」をつくっています。点数の表示を実装しました。ベビのライフゲージが左上、カエルの総数が左下、レーダーが右下、そして空いた右上が点数となります。最高得点は99990点で5桁表示とし、ゼロパディング(...PICO-8レーダー実装PICO-8スネークゲーム「ピコニョロ」をつくっています。音作りを進めていますが、なかなか進みが遅いです。そんな煮詰まっていた時にふと、「レーダーを実装してみようか?」と思いつきました。右下の一部に表示して、自分の位置とカエルの位置が...PICO-8いよいよ明日!明日はMI68(マイコン・インフィニット☆PRO-68K)。明日は、高エネルギーが秋葉原UDXに集結するので、覚悟してかかります。...PICO-8ターミナルで、空白のあるファイルやディレクトリ名の扱い方PICO-8の動画キャプチャ機能は、デフォルトで8秒になっています。コンフィグファイルを書き換えることで、1〜120まで指定できます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト上に表示された文字を入力してください。テクノロジー.ホーム検索トップタイトルとURLをコピーしました。