2D描画プログラム

Titleシーン向け2D描画プログラムを作成しました

DirectTextツールをつかっています

 

C2DImage.cpp C2DImage.h

シーン管理は一番大きなシーン管理は

game.cppです

ここに全シーンを扱っています

gamescene.cppはゲームシーンを管理しています

従って、game.cppでシーン管理

switch()文をいれました

WIC画像なので、png,jpegなどが扱えます

クラス

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;

}