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

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

プロジェクト8

マップクラス

マップデータはステージ側に持っていたのだが、スクロールさせたりといったマップに対して行う処理がいくつか増えてきたので、マップはクラスとして独立させた。

マップデータの持ち方

ステージのマップデータを配列で持とうとして、1次元で持つか2次元で持つかちょっと悩む。 int MapWidth = 20; int MapHeight = 20; // 1次元 int map[MapWidth * MapHeight]; // 2次元 int map[MapWidth][MapHeight]; 1次元で持つとx座標とy座標から配列の…

ステージ作成

ステージの作成に着手。ステージはマップチップで構成することに決定。パーツ一つのサイズはとりあえず32x32。 マップチップでステージを作成するときはパーツを並べていくだけでいいので簡単。ただスムーズにスクロールさせようとするとちょっと処理が面倒…

ウィンドウサイズの変更

この制作しているゲームは縦方向にジャンプしてスクロールするゲームなので、縦方向に移動することが多い。今までウィンドウサイズが640x480で作ってきたが、プレイヤーがジャンプできるようになってステージが狭く感じるようになってきたので、ここでウィン…

押す長さでジャンプ力を変化

キーを押す長さでプレイヤーのジャンプ力を変化させるように実装。 実装方法は単純で、ボタンが押されている間、カウンタを増加させて、ボタンが離されたら、その時のカウンタの値をジャンプ力として利用する。 int m_PressCount = 0; void func() { if ( g_…

SPACEとRETURN

キャラクターの操作でスペースキーが押されたか判定しようと思ったら、自作ライブラリではスペースキーには対応していなかった。 自作ライブラリではカーソルキーとボタン2つに対応しており、ボタン2つはキーボードのZとXに割り当てていた。 やっぱりキーボ…

パラメータ調整

まだステージはできていないけど、実際のステージを想定したプレイヤーキャラクターの移動の一部ができた。少しだけゲームっぽくなってきた。 ここでちょっと問題になってきたのがプレイヤーの移動の速さやジャンプ力などのパラメータの調整。 今は完全にコ…

横方向の移動

ジャンプはいい感じにできたのだが、今度は横方向の移動がうまくいかない。慣性がつきすぎて思う位置で止められなかったり、きちっと止まらず微妙に移動してしまったりする。 パラメータがまずいのか、それともアルゴリズムがまずいのか。

ジャンプの実装

昨日のマリオのジャンプの実装方法を参考にして、というかそのまま利用して、ジャンプを実装してみた。コードは次のような感じ。 float tempy = m_Y; float forcey = 1.0f; if ( g_pInput->GetPush(CTRL_UP) ) // 上が押されたか? { forcey = -10.0f; } m_Y…

放物線

プレイヤーの挙動を放物線を描くように実装中。なんとなくそれっぽい動きにはなったのだが、なんか違う感じ。どこか計算を間違っているのだろうか。

プレイヤーの実装

自分が操作するプレイヤー部分の実装中。 とりあえず、画面に表示して入力したカーソルキーの方向に移動できるようにした。今回考えているゲームのプレイヤーの動きはこれから。

ゲームメインループ

まずはゲームメインのループからコーディング中。タイトルやゲームオーバーなどの処理は後回し。とにかくアイデアがほんとにゲームとして成立しているか試すのが先。 自作ライブラリのおかげでウィンドウを作成してテクスチャのパーツを描画するまでは簡単に…

ファイルの扱いミス

新しいプロジェクト上でプログラムコードを書いていたところ、前のプロジェクトがビルドできなくなってしまった。 調べたところ、現在の変更箇所が前のプロジェクトにも反映されていたのが原因。 Visual C++のソリューションエクスプローラ上で新たなプロジ…

ライン描画

ステージやキャラクターのグラフィックはまだ用意していないので、とりあえずラインで描画しておこうと思ったが、SDLには矩形描画はあるがライン描画はなかった。斜めのラインを書きたかったら自分で斜めのピクセル座標を計算しなくてはならないようだ。いわ…

ドキュメント

とにかく手を動かせということで、コードを書き始めているのだが、自分で作ったライブラリとはいえ、けっこう前のものなのでほとんど使い方を忘れてしまっている。 Visual Studioのように丁寧なヘルプや関数リファレンスなんてドキュメントは書いてあるわけ…

ウィンドウサイズ

ウィンドウサイズでちょっと悩む。どんな解像度にしたらそのゲームに適しているのか。 最近はワイドの液晶も増えていることだから横長のウィンドウサイズもありかもしれない。たとえばPSPの液晶のように。でもテトリスのような落ち物パズルにはワイドサイズ…

ファイルの整頓

新しく作ったソリューションに前回のプロジェクトを移行。その際、作成中に作ったテスト用のコードやファイルなど今は使っていないものを削除。さらにあちこちのディレクトリに分かれていたのを整頓してまとめ、プロジェクトに必要なファイルを見やすく変更…

ソリューション作成

VisualC++で新しいプロジェクト用のソリューションファイルを作成。 今後、また別のプロジェクトを始めるときにすぐに取りかかれるように、ライブラリ関連を一つのプロジェクトとしてまとめ、それを利用するゲーム部分を別のプロジェクトとして登録。今後は…

開発環境

今回は作りながら決めていくということで、すぐに変更したのを確認できる環境が必要。そこでブラウザ上でフラッシュのプログラムを編集実行できるwonderflを使ってみようと思い、すこし試してみた。 コードを打ち込んでいると自動的にビルドされて、すぐにコ…

アクションゲーム

最近、このブログの目的を失いゲーム作りから離れてしまっていたので、再びゲーム作りを再開。 今回は以前思いついたアクションゲームを制作。でもそのアイデアではゲームになるのか分からなかったので結局、取りかからなかった。今回はとにかく作り始めて、…