Githubでソースコードを探し、興味深いロジックをここにまとめる
1. MikuDesktopDance
MMDモデルをデスクトップに常駐させるソフト
C++/DXライブラリを使用、モーションデータvmdも再生できる
ソースコードのファイル数は10個程度
DXライブラリのMV1LoadModel()の1行でモデルデータ(pmd/pmx)を読み込める
ModelHandle = MV1LoadModel( "kasen/kasen.pmd" ) ;
// 主要クラス
Model model;
Camera camera;
BGM bgm;
CommandPanel commandpanel; // 右クリックで出るポップアップメニューの処理
Camera camera;
BGM bgm;
CommandPanel commandpanel; // 右クリックで出るポップアップメニューの処理
Mouse mouse;
Key key;
class Animation {
float Time; // アニメーションの再生時間
// アニメーション切り替え時に補間 MV1SetAttachAnimBlendRate() を行う
int index; // 現在のアニメーション番号
int index_old; // 前回のアニメーション番号
float blending; // ブレンド率
}
透過処理やデスクトップ表示のためか描画されたデータが以下のように流れる
フレームバッファーMSAAScreenHandle->フレームバッファーScreenHandle->画像SoftImageHandle->透明なウィンドウに表示
C#/DXライブラリによる似たような記事もある
2. super-mario-bros
C++/SDL2での2Dマリオ
System Entity Componentの3つの概念が出てくる
シーンがシステムとエンティティを持ち、エンティティがコンポーネントを持つ
各システムがコンポーネントの情報をもとに毎フレームの処理を行う
サウンドはエンティティとして溜め込まれ、再生されたら破棄される
エンティティの生成、コンポーネントの追加
初期化、更新をつかさどる各種System
0 件のコメント:
コメントを投稿