2D描画プログラム
Titleシーン向け2D描画プログラムを作成しました
DirectTextツールをつかっています
C2DImage.cpp C2DImage.h
シーン管理は一番大きなシーン管理は
game.cppです
ここに全シーンを扱っています
gamescene.cppはゲームシーンを管理しています
従って、game.cppでシーン管理
switch()文をいれました
クラス
CImageDrawクラス
クラス名は、頭にCをつけるルールがあります(原則)
class CImageDraw
インタンス化しないと使えません
今回
//CImageDrawクラスのインスタンス作成(コピー)
CImageDraw* imageDraw = GetImageDraw();
これでつかえるようになります
初期化
WCHAR text[256] = L"assets/ci_dormitoryB04_a.jpg";
imageDraw->ImageInit(text);
画像の表示
//タイトルシーンの画像のデータを設定
//画像の幅、高さ
//画像を切り取ることもできます
RECT titlerect = { 0, 0, 640, 480 };//(左 上 右 下)座標
XMFLOAT2 pos = {0,0};//表示位置
static float scale = 1.0f;//拡大率 0をいれると画像消えます
imageDraw->ImageDraw(titlerect,pos,scale);
いろんな使い方があると思います
アイテム取得のハートアイコンの表示
ライフゲージの表示
会話フレーム枠の表示など
それぞれのニーズで改良してみてください
なおゲームシーンで使用するときは
ℤバッファが、切られますので
SetZBuffer()関数をよびだしてください
見えないはずのタイヤなどがみえたとき、zバッファがくずれています
注) Zバッファ(深度バッファ 英語でDepthバッファ)
モデルの前後関係を設定する
各ピクセルに距離z値をもたせる
資料
Google Drive
C2DImage.cpp
C2DImage.h
game.cpp
2D画像表示プログラムの使い方
サンプル画像
game.cppからよびだしているので
画像ファイルがassetsにないと、エラーでおちます
サンプル画像とか、なにか持っている画像を使ってみてください
game.cppを上書きするか
シーン管理をみながら
フォントの表示と画像表示をみながら
自分のgame.cppに追加するか
上書きするかです
game.cppのGameInit()関数の下のところ
に画像ファイル名を指定しています
//読み込む画像ファイルの場所と名前
CImageDraw* imageDraw = GetImageDraw();
WCHAR text[256] = L"assets/ci_dormitoryB04_a.jpg";
imageDraw->ImageInit(text);
g_scene = Scene::TitleS;
注2)
シーン管理
enum class Scene{
TitleS,
GameS
};
シーン管理変数の定義
enum class Scene g_scene;
初期化
g_scene=TitleS;
GameUpdate()とGameRender()関数に
switch()文追加
case文からbreak文までが、ひとつのシーンとなります
ここで画面表示関数をよびだします
なおシーン遷移はトリガーで
if(GetKeyboardTrigger(DIK_APCE)){
g_scene=GameS;
}
switch(g_scene){
case Scene::TitleS:
//ここにタイトル画面の表示
//フォントを追加
//シーン遷移のためのキー入力
break;
case Scene::GameS:
//ここに、ゲーム画面のHPゲージなど表示
break;
}