マガジンのカバー画像

PICO-8で遊ぼう

23
ピコピコなゲームエンジン、PICO-8で遊んでる記録
運営しているクリエイター

記事一覧

PICO-8で遊ぼう(スプライトをいっぱい出したいんじゃ編

表題のとおりです。 まずは単純にいっぱいスプライトを出すプログラムを書きます。 mainballui / bg / spriteRUN実行すると緑のボールが50個、ランダムに等速直線運動し壁で反射します。 zキー(○ボタン)を押すとボールが増えます。 STATS(ctrl+p)を表示して動作させていますが、ボールの動作が単純ですので1800個くらいまでなら30FPSを維持しています。 ボール同士の衝突判定上記のプログラムにボール同士の衝突判定処理is_collision

PICO-8で遊ぼう(chatGPTでプログラミングしてみる編

プログラミングというより、もはや全部作ってもらってる感じ…。 確実にバカになっていく自分がいます。 ボール同士の衝突のアルゴリズム教えて質量は1として書き直してluaで書き直して速度を一定に保ちたいこれをメソッドにしてありがとうばっちりです。でもボール同士が衝突したときにくっついてしまうことがあるので解消したい。chatGPTすげえ

PICO-8で遊ぼう(グラデーション?編

タイトル画面ができたよーゲームタイトルは「BLURAB SHOOT!」としました。 タイトル画面にはまだ何もロジックが入っていないのでここから先に進むことができません笑 下にある赤い的をブルラビくんが撃ち抜くとゲームが始まる…ようにしようかな? 円形のニラニラな部分以前の記事でステージを緑の円形の大地に設定しましたが 大地と暗黒面の境界がパキッとしていて気に入らないわけです。 境界あたりをグラデーションで段々と透明にしていってぼんやりさせれば良い感じになるかな?と思います

PICO-8で遊ぼう(UIとか編

前々回の記事からの続きです。ブルラビくんの全方位STGっぽい何かをちゃんと全方位STGゲームとして仕上げていきます。 いきなり完成とは当然いかないのでしばらくはチマチマとした進捗報告なnoteになる予定です。 追加するUIはこれUIの下準備draw_timer()経過時間のフォーマットを整えて単純にprint()すればタイマーの描画完了ですが、print_outline()関数を別途用意して上下左右に1pxずらした黒の文字列をprint()することで文字を縁取りしています。

PICO-8で遊ぼう(Wave Function Collapse編

今回はpico-8でWave Function Collapseをやってみたって回です。 Wave Function Collapseとは?そもそもWave Function Collapseってなに?という話ですが日本語では波動関数の収縮または波動関数の崩壊といいます。 ますます意味がわかりませんが一応wikipediaを… 本日の教科書陽気(そう)なお髭の男性が早口で捲し立てる動画と物静か(そう)なお髭の男性が何かをプレゼンしている英語の動画です。私、正直英語全然わか

PICO-8で遊ぼう(自分を中心に世界を動かす編

これまで作ってきた2Dシューティングゲームめいた何かをちゃんとしたゲームに仕上げてみたいと思います。 ※面白いゲームになるかどうかは別の話です。 ブルラビくんを世界の中心にする今までは固定画面でブルラビくんやスライムが動き回るような構造でしたが、それをブルラビくんを画面の中心に固定して、移動するたびに上下左右にスクロールするいわゆる2Dスクロールな構造に変更します。 2Dスクロールゲームに構造を変更するには、ブルラビくんの表示位置を中心に固定しつつ、スライムの表示位置はブ

PICO-8で遊ぼう(ビームを当てる編

先日、海外の方から記事読んでるぜ!的なツイートをいただきました。 一応書くたびにTwitterに流しているものの、誰も読んでるわけないだろと思っていたのですが、まさか海外の方から反応いただけるとは予想外でした。 わざわざ日本語の記事を読んでくれるなんて…と思いましたが、技術的な記事なら私も海外のものでも見にいく(英語は分かんないけどプログラム言語は読める)ので同じ様な感覚なのでしょうか?? 今回はビームにNPCを倒す処理を追加して、シューティング・ゲームっぽい何かに仕立てま

PICO-8で遊ぼう(スプライトの色変更編

今回は小ネタ。 前回作ったブルラビくんをグリーンスライムの群れが追いかけるゲームもどきですが、グリーンスライム以外のモンスターも出せると、よりゲームっぽくなりそうです。 スプライトエディタを使って新たなモンスターを描くのが一番良いでしょうが、正直(ドット)絵心ないので、ちょっと大変。 なので、既にあるグリーンスライムの色変えバージョンを作ってモンスターのバリエーションを増やす作戦をします。 本日の教科書※2つ目の投稿記事が本日の教科書です。 PAL()関数PICO-8のカ

PICO-8で遊ぼう(モンスターの出現!編

ブルラビくんがビームを撃てるようになったので、次はそれに当たってもらう?モンスター(NPC)を出現させてみます。 本日の教科書まずはスプライトシートのタブ1にモンスター(NPC)を描いてみます。 左上のスプライトの番号は64。 ブルラビくんと同じく上下左右に2コマずつのアニメーション持ってます。 ちょっと贅沢ですね、モンスター(NPC)のくせに()。 キャラクターの処理を共通化するPC/NPCともに、表示したり動かす処理のほとんどは共通化できます。 またPCもNPCも、テ

PICO-8で遊ぼう(ビームを撃つ!味付け編

前回からの続きでビームを撃つブルラビくんに味付け(演出)をします。 本日の教科書発射間隔の調整ビームを撃てるようにはなりましたが、発射間隔が短すぎて数珠繋ぎになっていますので、発射間隔の調整用にテーブルPCに発射間隔のカウント用の変数を追加します。 input()に以下を追加します(赤枠)。 pc.gun_intervalが0のときのみビームを撃てるようにします。また、ビームを一発撃った直後に、pc.gun_intervalに値を設定します。次に発射できるようになるまで

PICO-8で遊ぼう(ビームを撃つ!編

ブルラビくんがビームを撃てるようにしてみます。 本日の教科書下準備プレイヤーの情報をまとめるいままではグローバル変数x, y, sなどにプレイヤー(PC)の情報をバラバラに入れていましたが、以前の記事のアイテム(ニンジン)と同様に一つのテーブル(PC)にまとめてみます。 PC用の情報をまとめただけでなくプレイヤー用にタブを切ってコードを集約させました。既にビームを撃つ処理も入っているので若干分かりにくいかも…。 今までのinput()とは処理を変え、キャラクターの移動や描

PICO-8で遊ぼう(打ち上げ花火を作ろう編

(ヘッダ画像)静止画だとなんのこっちゃかわからんな。 本日の教科書前回の予告どおり?今回はパーティクルシステムで打ち上げ花火っぽい何かを作って遊んでみます。 今更パーティクルシステムとか馬鹿らしいとは思いますが…。 コードの構成まだ処理は書いていませんが構成としてはこんな感じでしょうか? それぞれの関数内に処理を書いていきます。 ADD_PTCL(x,y)UPDATE_PTCL(P)_UPDATE()で呼び出される毎に、X,YにVX,VYを追加してパーティクルの位置を更

PICO-8で遊ぼう(ニンジンを敷き詰めろ!編

最近、日課の朝さんぽ前に4分間の軽HIIT(飛ばないバーピー)をするようにしました。 ええ、体重が全然減らない(むしろ増えてる感ある)もので…。 4分間の軽HIIT(飛ばないバーピー)程度でダイエットの効果が出るのかは疑問ですがとりあえず1ヶ月間やってみようかと思ってます。 本日の教科書前回作ったものは出現する1個のニンジンをブルラビくんが取る(食べる)たびに別の場所にまたニンジンが出現するというゲーム(?)でしたが、さすがに退屈すぎるので、今回は、大量のニンジンを画面に出

PICO-8で遊ぼう(衝突判定編

今回からPICO-8の本領域?である2Dのゲームを作っていこうと思います。 本日の教科書何はともあれプレイヤーキャラクターを作るアイテム取るゲームを作る当たり(衝突)判定当たり判定はニンジンとブルラビくんそれぞれの座標から2点間の距離を求め、十分近ければ(数値が小さい)当たりということにします。 2点間の距離Dを求めるには三平方の定理を使います。 $$ D=\sqrt{(IX-PX)^2+(IY-PY)^2} $$ ゲームっぽくしてみるブルラビくんがニンジンを取るたび