Game

ブロックすり抜けバグを修正

GTK版だけジャンプ中にブロックをすり抜けることがあったので修正しました。 差分 浮動小数点演算の誤差が原因っぽいです。 描画、サウンド、入力デバイス、GUIツールキット以外の処理はDirectX版と共通なので、GTK版だけ結果が変わってくるのも変なんですが…

Linuxのジョイスティック

Linuxのジョイスティック入力(/dev/input/js0)に対応しました。 差分 実装は、デバイスをノンブロッキングモードでopen()して、ひたすらread()しているだけです。 うちの古いVMwareだとVista上のVMでUSBを認識しないので、UbuntuのLiveCDを使ってテストしま…

action_game on Linux

昨日の問題はZ値を0に固定したら直りました。 Zバッファの設定を間違えているのだと思いますが、実質使ってなかったので原因究明は後回しです。 その後、Windows依存コードを取り除いて、Linuxで起動するところまで出来ました。 gtk_action_game/ VMware上で…

OpenGL/PulseAudio組み込み

action_game.exeにPulseAudioとOpenGLを組み込んで、コンパイルできるところまできました。 gtk_action_game/ 一応実行できるものの、なぜか何も表示されません。 描画用の関数を直接呼ぶとちゃんと表示されるんで、初期化とかの問題ではないと思うんですが…

テストプレイ その2

昨日の方針でDLLのパスを調べ上げてbjamのビルドディレクトリにあるaction_game.exeを起動できるようにしました。 今日の差分 この機能が有効になるのはデバッグビルドの場合だけです。 あと、g++だとrspファイルを使わないので動きません。 簡単そうでも実…

テストプレイ

action_game_editorにテストプレイの機能を追加しました。 差分 エディタと同じディレクトリにaction_game.exeがある場合だけ機能します。 これだとデバッグ時は不便なので、bjamのビルドディレクトリからaction_game.exeを探索して実行したいところです。 …

スタート位置 その2

う〜ん、全然進んでないです。 とりあえず、スタート位置のキャラを二つ以上置けないようにしました。 差分 効率とか無視して、スタート位置用キャラを配置する度に古いのを消してるだけです。

スタート位置

N2179の実装が一区切り付いたので、再びaction_gameに戻ります。 手始めに、前に考えていたスタート位置専用キャラクタを追加しました。 差分 これで、キャラクタの選択ウィンドウには既定で「空白」と「スタート位置」の2つが準備されるようになりました。

カスタムリソース

初期位置キャラクタ用の画像をWin32リソースファイルとして参照するためにPNGのカスタムリソースに対応しました。 今日の差分 元々読み込み処理がstd::istreamに抽象化されていたので、リソースのアドレスを取得してboost::iostreams::array_sourceを作って…

元に戻す

やっぱり初期位置はマップ毎に持った方がよさそうなので、マップのプロパティから選択できるようにしようと思ったんですけど、それだったら編集中のマップ上で選択できたほうが自然です。 マップに配置するなら、初期位置をマップチップで表現したほうが楽な…

action_game再開

ライブラリのメンテナンスも終わったので、action_game.exeの作業に戻りました。 今度はプレイヤーキャラの変更が可能なように修正してみます。 今のコードはプレイヤーキャラのGUIDが固定になっているので、キャラクタエディタでplayer属性のキャラクタを作…

土管 完成

土管の出入りのアニメーションを実装しました。 差分 昨日の予定通り、「土管に入る方向」と「土管から出る方向」をエディタで設定できるようにしています。 「土管に入る方向」は土管に入るときのキー方向にもなります。 あと、マップは複数持てるのに移動…

土管 その7

フェードイン/フェードアウトを実装しました。 差分 どのレイヤで実装すべきか悩みましたが、イベントハンドラから操作しやすいという理由で、カメラ(スクロール)用のキャラクタとして描画することにしました。 カメラのgame_character::colorでフェード色を…

土管 その6

昨日のagt-yhファイルは座標にスクロール分が足されていなかったので修正しました。 差分 それから、別マップへの移動も実装しました。 差分 現状、マップファイルを読み直しているので、敵もアイテムもブロックも全部復活します。 TODO: 画面切り替え時のフ…

土管 その5

移動先をagt-yhファイルに記録して、ゲーム側で参照するようにしました。 agt-yhファイル保存の差分 agt-yhファイル修正差分 ゲーム側の差分 ついついテストプレイを繰り返してしまって遅くなりました。 TODO: 別マップへの移動 移動先の変更、削除

土管 その4

土管の移動先を選択するダイアログ(position_dialog)を追加しました。 今日の差分 pipe_down_routineを設定したキャラクタを配置するとposition_dialogが出るようになっています。 マップから移動先を選択するウィンドウ(PosSelectWindow)は、マップ編集ウィ…

土管 その3

昨日のスクロールアウトの問題はアドホックに解決して、土管に入るアニメーションと効果音を追加しました。 今日の差分 スクリーンショットは、間違って土管をワープさせてしまった図です。 土管に入るアニメーション用に作ったpipe_down_routineですが、最…

土管 その2

プレイヤーキャラと接触しているときに発生するイベントon_touch_playerと、下を入力しているとワープするtransfer_down()を実装しました。 今日の差分 とりあえず、移動先はスタート位置固定で実装してみたものの、同画面内の移動しか正常に動作しません。 …

土管 その1

とりあえず土管の画像だけ用意しました。 今日の差分 スプライトエディタを作ってないので、ags-yhファイルを作るのが面倒でした。 現在、土管の実装はこんな感じで考えています。 キャラクタに設定するイベントハンドラとして実装 移動先の一覧を別ファイル…

半マス配置

マリオの土管っぽいものの実装に向けて、キャラクタを半マス(16ドット)ずらして配置できるようにしました。 今日の差分 配置時に使用しているマップチップは32x32ドットのままなので、そのまま実装するとドラッグしたときにキャラクタが重なって配置されてし…

パワーアップ時のエフェクト

パワーアップ時にキャラクタを停止させ、効果音を鳴らすようにしました。 今日の差分 game_system::effectがセットされると、キャラクタの移動ルーチンを呼ばずにこちらが呼ばれるようになります。 ここにwait_se_routineをセットしただけです。

ちょっとだけ修正

今日もあんまり進んでません。 前から気になっていた箇所をいくつか直しました。 ブロック突き上げの当たり判定を変更 Jamfileにrunターゲットを追加 agp-yhファイルのドラッグ&ドロップに対応 bounce_routineの対象を武器扱いに変更 直したいけど面倒なも…

浮動小数点数とGUI入力

ActionGame.exeの重力加速度は、エディットボックスで編集可能な浮動小数点数です。 初期値は-0.6なんですが、これは十六進の浮動小数点表現では正確に表現することができません。 このため、-0.6を設定しても一旦浮動小数点数として書き出して、再度読み込…

プロジェクトの設定 その4

以下の設定がゲームに反映されていなかったので修正しました。 画面サイズ 重力 最大落下速度

プロジェクトの設定 その3

プロジェクトの設定の残作業を片付けました。 開始マップの選択が出来るように修正 背景色をエディタに反映させるように修正 ゲーム側でもプロジェクトファイルを読み込むように修正 スクリーンショットは背景色変更のテストです。 昨日はコミットし忘れてい…

プロジェクトの設定 その2

フォルダの選択、フォルダ名の同期、背景色ボタンを実装しました。 フォルダ選択、フォルダ名の同期の差分 背景色ボタンの差分 背景色ボタンはクリックするとWindows標準の色選択ダイアログが出てきて、色を選べます。 ボタンの描画はベタ塗りしかしてないの…

プロジェクトの設定

プロジェクトの設定ファイルを用意しておきながら全部初期値のままだったので、これを編集するダイアログを追加しました。 今日の差分 まだ、作りかけです。 ダイアログのデザインに時間がかかって全然進みませんでした。 背景色と開始マップ以外はとりあえ…

キャラクタ定義の追加

いろんな問題は後回しにして、少しでも作業を進めようと思い、キャラクタ定義を追加できるようにしました。 今日の差分 キャラクタ選択ウィンドウの空いているところをダブルクリックすると追加&編集できます。 改名に関する問題を回避するため、キャラクタ…

プロジェクトのリソースとID

エディタ上でマップを削除してもファイルを消してないので、プロジェクトを開きなおすと復活してしまうことに気が付きました。 プロジェクトの編集中はオンメモリで作業しているので、即座に削除するわけにはいきません。 よって、削除したファイル名を覚え…

キャラクタリストの編集 その2

キャラクタリストの編集内容がマップ編集ウィンドウに反映されるようにしました。 今日の差分 ほとんど昨日のコードの流用です。 複数のウィンドウで共有するデータが多くて、その受け渡しでソースがごちゃごちゃしています。要整理です。 多分、いろんなも…