S.F. Page

Programming,Music,etc...

Box2D + WinRTでゲームを作る

Box2D + WinRTでゲームを作る (20) – タイマー遷移コードの改良

タイマー遷移コードの改良 ゲームオーバー表示を数秒表示してメニューに戻るコードは作成できたけれども、表示をキャンセルしてすぐメニューに戻るようにし、このタイマー遷移コード自体を使いまわしできるようにしてみた。 template <typename EventClass,int Resolution> task<void> create_timer_tas</void></typename>…

Box2D + WinRTでゲームを作る (19) – task.then()のスレッド実行コンテキスト

ゲームオーバー時の処理 ゲームオーバー状態に遷移してから3秒後にメニュー表示に戻るコードを考えていて、思いついたのが下記のコード。 struct GameOver : msmf::state<>{ template <class Event, class Fsm> void on_entry(Event const& ev, Fsm& ) { GameMain^ g = ev.getGameMai</class>…

Box2D + WinRTでゲームを作る (18) – Boost.MSMで実装を進める

実装を進めている お粗末だが今のところできている状態遷移コードをArgoUMLというツールで書いてみた。ここんところ仕事もばたばたしているし、コンフェデ杯もあったのでプログラムに割く時間はあまりなかった。 まあこんなところだ。ゲームの状態遷移はもう…

Box2D + WinRTでゲームを作る (17) – Boost.MSMで実装を進める

Boost.MSMでゲームの大まかな遷移をぼちぼち実装している。なかなか面白い。 何が面白いのか語れるほど習熟しているわけではないので、どう言えば的確なのかもわからないで書くのだけれど、まあMSMに状態遷移の分岐処理を任すことができるので、その状態でイ…

Box2D + WinRTでゲームを作る (16) –bleis 削除ゲーム

Boost.MSMを使って今試行錯誤しながらコード書いている。書いている途中でゲームのMSMによる実装例を発見。 Boost. 勉強会 #5 に参加してきた。 このコードは非常に読みやすくかつすっきりした感じである。参考にさせていただこう。

Box2D + WinRTでゲームを作る (15) – 状態管理をBoost.MSMで実装する

今週は水曜日あたりまでBoost.MSM関係のドキュメントをチェックして、木曜日からおそるおそるコードを書き始めた。チェックしたドキュメントは下記。MSMで実装しようとするとほぼ必ず読み返している。 Boost.MSMのドキュメント Boost.statechart / Boost.msm…

Box2D + WinRTでゲームを作る (14) – 状態管理をBoost.MSMで作る

下のソースコードはXAML DirectX 3D shooting game sampleのApp.xaml.cppのUpdateメソッドを引用したものである。このコードはゲーム状態管理の実装でもある。 //-------------------------------------------------------------------------------------- v…

Box2D + WinRTでゲームを作る (13) – Menuページを作る

ページ切り換えのアイデア 最初UIの切り換えをWindow::Current->ContentにFrameをセットしてページを遷移する方法、つまり普通のやり方でやろうかなと思ったけれど、ページの中にFrameを埋め込み、そこにページを埋め込むやり方もあることを知り試すことにし…

Box2D + WinRTでゲームを作る (12) – システム構成を考える

ちょこちょことUIのコードをいじっているが、まだしっくりとは来ていない。どうも全体像がつかめないし、何がどう機能しているのかもよくわからない。キーボード入力ってどういう風に書けばいいの?というレベルである。Win32 APIだとウィンドウメッセージを…

Box2D + WinRTでゲームを作る (11) – UI構成を考える

マップエディタやBox2Dのエディタも作れるようにXAMLの勉強を今している。一応Windows8がβ版のころからいじってはいたものの、デスクトップに回帰したためにすっかり忘れてしまっている。LayoutAwarePageってなんぞやと検索すると自分のブログの記事が出てき…

Box2D + WinRTでゲームを作る (10) – Direct3DよるBox2Dオブジェクトの表示

Box2DオブジェクトをなんとかDirect3Dで表示できるようになった。 ソースコード 凸多角形の三角形分割は簡単そうな情報を得たので、8角形まで手で描いてみて規則性を確認してみた。 これで規則性がよくわかったので、分割して表示する方法に変更してみた。描…

Box2D + WinRTでゲームを作る (9) - 凸多角形の三角形分割

Bpx2DオブジェクトをDirect3Dで描画するためのコードをようやく書き始めた。結局コンピュートシェーダーは使わずにオーソドックスの頂点データを渡して描画する方法にした。座標変換はBox2D座標を頂点シェーダーで変換して表示する。といってもDirect2Dで描…

Box2D + WinRTでゲームを作る (8)

私の使っているビデオカードは、Geforce450GTSである。まあ普通のスペックであるがもう1年以上前のもので、Feature Levelは11.0である。このディスプレイカードでどういうオプションが使えるのかD3D11_FEATURE_D3D11_OPTIONSを引数にCheckFeatureSupportで調…

Box2D + WinRTでゲームを作る (7) - FluidCS11サンプル

昨日今日と、今やろうとしていることになんとなくパーティクルあたりのサンプルも参考になるのではということで、「FluidCS11」サンプルのシェーダーコード辺りを読んでいた。 このサンプルは2次元流体シミュレーションをコンピュートシェーダーで行って表示…

Box2D + WinRTでゲームを作る (6) – Box2Dの処理結果をDirect3Dで描画する (2)

今日もどうやってシェイプを描こうか考えていた。考えていたというよりは、シェーダーについて学びかつその技術が描画に使えるかどうかを吟味していたというほうが正しいだろうか。 ヒントになったのは「Direct3D sprite sample」である。頂点データはいわゆ…

Box2D + WinRTでゲームを作る (5) – Box2Dの処理結果をDirect3Dで描画する

Box2Dの処理結果をDirect3Dで描画するため、シェーダー周りをどう作ろうか思案しているところである。実際のゲームではビットマップに置き換わるのだけれども、デバッグの時にシェイプやジョイントを表示できるようにしておけば便利である。頂点シェーダーは…

Box2D + WinRTでゲームを作る (4) – 動画出力できるようになった。

今週はWeb上のDirect3D、Media Foundationのリソースを参考にしながらコードを書いていた。まあなんとかスワップチェインの内容を動画出力できるようになった。 ソースコード ここで考えた手順でほぼうまくいった。 一応720p/30fpsでの出力はできている。今…

Box2D + WinRTでゲームを作る (3) – 動画出力方法を考える

今日はMedia Foundationドキュメントをみながらスワップチェインをどう出力するのかを考えていた。GPUメモリ -> CPUメモリの転送も極力減らしたいし、 拡大縮小もGPUにやらせたい。で以下の手順でいけるのではないかと。 スワップチェインと同じ大きさのテク…

Box2D + WinRTでゲームを作る (2) - 動画出力を試みる

作成中の画面を動画にしていたのだが、ちょっと処理速度的に厳しくなってきた。 アマレココでもExpression Encoderでも15FPSで処理がもたつく。デスクトップのキャプチャーは結構重い処理なのであろう。 Media FoundationのSink Writerを使って、スワップチ…

Box2D + WinRTでゲームを作る

「XAML DirectX 3D shooting game sample」をスケルトン化し、Box2DのコードおよびDirect2Dによる描画コードを追加した。 ソースコード この後でGDC2013 Game テンプレートなるものも見つけ、これでやり直そうかなと思ったけど、サウンドやメッシュ・入力周り…