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

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

Gem Hunter Match

assetstore.unity.com
blog.unity.com
gamemakers.jp
Unity公式のマッチ3パズルのサンプルプロジェクトが公開されている。
プロジェクトのメインは2D描画のライティングなどのようだが、私が興味あるのはパズルゲームのアルゴリズム。動きや揃ったときやコンボの判定など。以前、ちょっとしたパズルゲームを作ったとき、判定部分でけっこう苦労したことがあった。その辺で参考にならないかとチェックしてみよう。

障害物

ステージ上の障害物を作成。
障害物をオブジェクトとして定義して、配列に登録。ステージの描画のとき、その障害物を描画して、プレイヤーとの当たり判定を取る。
と、やりたいことは分かっているけど、JavaScript での書き方が分からず、調べながら書いていったので、1個の障害物を描画するだけで、かなり時間がかかってしまった。
まだ JavaScript での書き方に慣れていない。

428

www.famitsu.com
4月28日ということで「428~封鎖された渋谷で~」
Wii版をプレイして、さらにPS3版、PSP版、PS4版もプレイした。
サターンで出た「街」の流れを組む、ザッピング方式のサウンドノベル
街はスタート時の渋谷の交差点にいた100人の物語という予定だったらしいが、続きが出ることはなく非常に残念。
このタイプのゲームはほとんどリリースされていないのも残念。
タイムトラベラーズはちょっと好みに合わなかったしなぁ。
ゲームでしか読むことのできない物語をもっと読みたいのだけれども。

インストール先

Python でちょっとしたツールを作ろうとしたところ、必要なモジュールが組み込まれていないというエラーが出た。
しかし、このモジュールは入れたはずと思い、以前作ったツールを起動してみたら、動作した。
しかし、コマンドで実行しようとしたら出来ず、バッチで起動した場合は出来るというよくわからない状態に。
いろいろしらべたところ、Python 自体が複数インストールされていて、違うパスの Python で実行されていたことが分かった。
インストールされているモジュールもそれぞれ違うので、実行できるものとできないものがあった。
コマンドラインで簡単にインストールできるようになっているのは便利だけど、どこにインストールされたのかが分かりにくかった。
問題なく使えているときは大丈夫だけど、ちょっとトラブルがあると解決になかなか時間がかかってしまう。
まあ、ちゃんと管理していない自分が良くないのだけど。

ステージのコリジョン更新

ステージのコリジョンを実装。
天井と床に当たり判定を付け、プレイヤーがヒットすることを確認。
また、当たり判定の範囲を矩形で描画するようにしたので、どこにコリジョンがあるのかも分かりやすくなった。

配列を返す

当たり判定の処理をどう書こうかとJavaScriptでの値の渡し方や返し方をChat GPTに聞いていたら、
挙げてくれたサンプルコードでJavaScriptでは配列を返せることを知った。
もしかすると忘れていただけかもしれないが。
実際にChat GPTが出してくれたサンプルコードが次の通り。

function returnArray() {
    return [1, 2, 3, 4, 5];
}
// 関数を呼び出して配列を取得
var myArray = returnArray();
console.log(myArray); // [1, 2, 3, 4, 5]

最近は普通に検索するよりもChat GPTを使うことのほうが多い。サンプルコードも出しながら分かりやすく回答してくれる。
まあ、ときどき嘘を付くことがあるので、注意しなくてはいけないけど。

当たり判定変更

今までは当たり判定を点と矩形で行っていたのだが、それを矩形と矩形同士の当たり判定に変更。
実装後、チェックで正しく判定出来ていないと思ったら、判定自体は正しかったけど、
デバッグ用に表示していた当たり判定の矩形の描画座標がずれていただけだった。