ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

ステージサイズ

プレイヤーの動きばかり考えていて、ステージをどうするか、ぼんやりとしてしか考えていなかった。
とりあえず、矩形を並べてみようとしたら、思ったように綺麗に並ばない。
そもそも、縦横どのくらいのサイズにするかも考えていなかった。
ということで、まず、画面サイズの枠を表示してみて、いろいろ検討中。

名前空間

Javascript名前空間を使ってプレイヤークラスとステージクラスを作成するようにした。
実際のコードは次のような感じ。myGame という名前空間を作成し、そこにプレイヤーとステージのクラスを定義した。
とりあえず、これで定義名が被らずに実行できるようになったが、この書き方で正しいのかちょっと自信は無い。

var myGame = {};

myGame.CPlayer = class {
    update() {
    }
}

myGame.CStage = class {
    update() {
    }
}

myGame.player = new myGame.CPlayer();
myGame.stage = new myGame.CStage();

function mainloop() {
    myGame.player.update();
    myGame.stage.update();
}

ステージ作成

ステージの作成開始。
インスタンス名を bg にしようとしたらエラー。すでにライブラリで使われていた。
ということで、今度は stage に変えたら、またエラー。こちらも使われていた。
ここは、ちゃんと名前空間を設定しないと。
ということで、JavaScript での名前空間の設定方法を調査中。

GDC 2024 講演資料

gdcvault.com
gamemakers.jp
GDC 2024」で行われた講演の動画や資料が公開されているサイト。
スーパーマリオワンダーやゼルダのティアキンも公開されているという。
任天堂はあまり講演しないイメージだったけど、最近は講演して資料とか公開するようになっている印象。

コリジョン実装

プレイヤーのコリジョンを実装。
描画部分を一部変更して、コリジョン用のデータを用意するようにした。
これで思ったよりも簡単に実装できた。
チェックしてみて正しく動作していそう。

プレイヤーのコリジョン

プレイヤーのコリジョンの実装を開始。
単純に円や矩形で判定できる形状ではないので、描画と同じく、これまたやっかい。
コリジョンを可視化するデバッグ機能も準備したほうが良さそうだ。

プレイヤー実装

プレイヤーの動きをやっと想定したとおりに実装出来た。
まずはパラメータを一番シンプルな状態にして、コードのいろいろなところにログ出力を入れて、1ステップずつ確認しながら修正していった。
考え方は間違っていなかったけど、ループ回数やインデックスの計算がミスっていてうまくいっていなかった。
これでやっと次の実装に進められる。