2014/05/31 なんとか予定通りにダンジョンゲームが完成。 ここで打ち切るかもう少し弄るか少し考えるとしよう。 2014/05/30 壁抜け出来ないように処理を追加。 ダンジョンを歩き回るゲームとしてはこれで終了と言える。 2014/05/29 テスト画像。 そこそこの出来? 2014/05/28 壁を作っている際に正面壁の画像が無いのに気付いて追加。 横壁の処理が難しいからそれだけに囚われていた。 2014/05/27 壁のオン・オフ完了。 壁にデテール追加したり、壁に複数種類があるなら、今のプログラムでは対応できない。 しかし、テスト用だと考えると上々。 2014/05/26 壁のオン・オフを記憶する変数を追加。 プログラムで一括処理したのでバグっていたら大変だけど、テストした限り正常に動いている。 2014/05/25 擬似3Dダンジョンが表示できるようになってもマップと対応していないと意味が無い。 そこでグリッドに壁の追加・削除機能を追加。 32x32の箱の上下左右をクリックすると壁のオン・オフが出来るように作業開始。 2014/05/24 オール仮面ライダージェネレーション2 アクションゲームの参考に買ってみた。 難易度低い以前に敵のAIルーチンが悪い? 敵が棒立ちしている時が多い。 雑魚は吹っ飛ばすものとしてもボス級まで動かないのはどうかと思う。 落とし穴に落ちた以外ではラスボスにレベルが足りずに一回負けたくらい。 2014/05/23 壁を表示。 右側は反転を使って表示している。 出来に拘るなら反転は良くないけど、テストと考えると十二分に有用。 2014/05/22 痛恨のミス! 画像表示ルーチンがアルファブレンド未対応だった。 関数に一つ変数追加して問題解決したけど、ダンジョン試作していなければ気付かなかった。 やはり素早く作れるテストアプリは大事だ。 2014/05/21 ダンジョンの壁画像。 800x600の画面サイズに使う前提で作ってある。 画像そのものは512x512。 一番背が高い壁が512より大きいため300で分割している。 幅は96、96、64、32となっている。 2014/05/20 一応今出来ている範囲のスクリーンショット。 白がグリッド。 赤がプレイヤーと向いている方角。 黄色が視角領域。 2014/05/19 プレイヤーがマップ外に出ないように調整。 実に簡単な処理だけどテスト中はマップ無視で移動できるほうが何かと便利。 終盤になったらこの処理を解除してテストすることもあるだろう。 2014/05/18 方向移動を入力した際に、向いている方に動くようにした。 この処理は簡単だけど、他の処理と上手く噛み合うか確認しないといけない。 2014/05/17 グレイトバトル フルブラスト 懐かしいシリーズなので買ってみた。 難易度低すぎない?アクション苦手だから難易度が高すぎるとクリア出来ないけど一回もゲームオーバーにならずにクリアできた。 お話はこの手のゲームのお約束で期待できないのは仕方が無いけどもうちょっと捻りが欲しかった。 2014/05/16 全方向の視角領域処理が正しいと確認が取れた。 ついでに確認の順番を弄って、遠いところから先に確認するようにした。 これで描画時にも同じ変数が使えて半分透過した壁などにも対応できた(はず)。 2014/05/15 時計回りと反時計回りのテストをしていたら反時計回りだけ北から西に回れない。 原因は予想外に単純だった。 北が0、西が3になっていて方向にはunsigned intを使っていた。 北から西に行く場合、0 - 1 = 0になって北から動けなかった。 これはunsigned intが正の整数しか扱えないから。 方向転換の処理順を変えて問題を解決しておいた。 2014/05/14 視角領域がグリッド外に出た際に処理を飛ばすようにした。 2014/05/13 視角領域をプレイヤー移動と連動するようにした。 2014/05/12 キーボードによるプレイヤー移動処理を開始。 プレイヤーの向きによってキー一つで動きが4通りあるのが地味に面倒。 2014/05/11 プレイヤーの視角領域を判定できるようにした。 2014/05/10 プレイヤーのポジションを表示。 2014/05/09 簡単なグリッド表示まで進んだ。 今回はえらくスローペースで開発している。 2014/05/08 プログラムテストのために簡単な擬似3Dダンジョンで作ってみるか。 完成目標は10日以内としておこう。 2014/05/07 ボタン処理プログラムを過去からコピペ。 ボタンは複数ステートを持っているからそれに対応できる作りになっている。 昨日のクリック判定と合わせるとマウス入力を中心としたゲーム処理はほぼ網羅出来る。 2014/05/06 昔のプログラムからマウスによるクリック判定を持ってきた。 これは問題なく動くのでコピペだけで終わった。 2014/05/05 boostのrandom試してみた。 作っているゲームだとWindowsのrand()でも十分だけど、せっかくだから試してみた。 一番簡単なサンプルだとこんな感じになる? distで1から6の数字を返すから、それを使えばいい。 #include <boost/random/mersenne_twister.hpp> #include <boost/random/uniform_int_distribution.hpp> #include <ctime> gen.seed(static_cast boost::random::uniform_int_distribution<> dist(1, 6); dist(gen); 2014/05/04 ゲームの画面サイズを指定+固定。 これは前からやっているけど、今回はやり方を少々変更。 以前上手く行っていた方法で何故か画面が変更されなかった。 ここら辺はDirectX9を使っていないことと微妙に関係があるのか? 2014/05/03 DirectX9のプログラムから新プログラムに各種コード移し変え開始。 まずはマウス入力と画像読み込み関係からはじめる予定。 2014/05/02 月一でサイト更新してみたけど、かなり殺風景なのに気付く。 やはり画像を増やしたほうがいいのだろうけど、公開できるような画像が無い。 2014/05/01 やっと更新出来た。 月一更新はどうかと思うけど、更新無しより少しはいいはず。 |