Making a game in PICO-8: Getting stuff moving

これは、を使用して初めてのゲームを作成する日記の第 2 部です。ピコ-8。昨日、私はアイデアに取り組み、コードをいじり回しましたが、そのほとんどが私には理解できないことに気づきました。しかし今、私には作れそうなコンセプトがあります。カエルを箱に押し込むゲームです。それは「No Frog Left Behind」と呼ばれています。

それなのに…どうやって始めればいいのか全く分かりません。エスケープを押す以外に、ピコ-8のツールスイートを使用し、建設的で方向性が充実していると感じようとして、その基本構造を入力します。

ゲームの重要な関数は次のとおりです。 init()。これはゲームの最初の実行時にのみシステムが呼び出すため、これを使用して設定を行うことができます。 update() は、システムがフレームごとに呼び出すため、1 秒あたり 30 回行われます。そしてdraw()は、更新されたものを描画します。しかし、カエルを箱に押し込むゲームのコードはどうやって構築し始めるのでしょうか?

OK、スプライトを画面上に配置する必要があり、それを制御できる必要があり、コンピューター制御の別のスプライトをプッシュする何かを発射できる必要があることはわかっています。レベルに通行不可能なエリアがあるというアイデアも気に入っています。カエルの話なので、おそらく通れない場所は水で、あなたは…スイレンの葉の上を歩き回りますか?そこで、PICO-8 の標準 8x8 ピクセル スプライトとその 16 色を使用していくつかを描画します。

私の目的は、マップ エディターを使用してこれらのスプライトを使用してレベルを描画することです。少しランダムに散財して次のコードを実行すると、画面いっぱいにレベルが表示されます。

function _draw()
    map(0,0,0,0,16,16)
end

これは気持ちいいですね!ゲームみたいですね!何の機能もないゲーム。しかし、それは始まりです。

しかし、プレイヤーが行ってはいけないところへ行くのをどうやって止めるのでしょうか?衝突の時期が来ました。「衝突と位置コードの再調整は時々注意が必要です。」というベンジャミン・ソウルの運命的な言葉がまだ私の頭の中でこだましているため、私はすでに衝突を恐れています。

他のゲームのコリジョン コードも検討し始めますが、それらは私の場合のようにグリッドに基づいていない傾向があります。そしてそれは信じられないほど複雑です。あらゆる種類の変数や計算が行われており、私には理解できません。そしてそれはすべて他のシステムと結びついており、私はその機能についてほとんどぼんやりとしか認識していません。私は他の人のコードを自分のテキスト ウィンドウにコピーして、それが機能するかどうかを確認し (通常は機能しません)、理解できない、または必要のないシステムを構築する誘惑に駆られるのに数時間を費やします。

しかし、これらのコードの 1 つは、リアルタイムのボールの跳ね返り物理を披露するために作成された、Collide と呼ばれる PICO-8 の組み込みデモからのものです。他のゲームでもそのコードが使用されていることに気づきました。最初の数行を読むと、オブジェクトを生成する非常に巧妙な方法があり、プレイヤー、カエル、発射物を作成するために完全にニックネームを付けることができることに気付きました。それぞれに変数をロードでき、変数が表示される場所の x 座標と y 座標を設定します。衝突を解決するための答えは何もありませんが、どうやって始めればよいのか数時間悩んだ結果、ようやく画面上に何かが表示されるようになりました。 OK、彼らはひどく不気味なカエルで奇妙な姿をしていますが、何かがあるのです。

しかし、これが新たな問題を引き起こすため、私の喜びは長くは続きません。私が描いたスイレンの葉の 8x8 ピクセルのスプライトに一致するグリッド上でそれらを移動させるにはどうすればよいですか?適切なゲームがどのように動作するかについて、またイライラして混乱するツアーに引き込まれることを恐れた私は、独自の解決策を思いつきました。画面が 128x128 ピクセルで、タイルが 8x8 の場合、単純に画面上の座標を常に 8 で割ればよいのです。すぐに、キャラクターは 16x16 グリッドにスナップします。 PICO-8 の 6 つのボタン コントロールから入力を取得するために、いくつかの行を貼り付けます。ここに上ボタンがあります:

if btnp(2) then 
    player.y -= 8
end

レベルも少し小さくすることにしました。そして、動くキャラクター (そして静止したカエル) がいます。

私はすべてのルールを破っているのではないか、ゲームがより複雑になるにつれて自分のやっていることはひどい影響をもたらすのではないかという強い疑念を抱いていますが、一つのことを解決することが自然に次のことにつながるので、自分は道を進んでいると感じています。作るもの。

そして次は衝突です。

全シリーズはこちら、クリスマスの一週間にわたって毎日公開します。また、PICO-8 は現在、Humble GameDev ソフトウェア バンドル、興味があれば試してみてください。