ヘディングのテキスト
前提・実現したいこと
見出しの通りDirectX11でスコアを表示させたいです。
スコア機能を実装中に以下の問題が発生しました。
発生している問題・エラーメッセージ
画面が緑色にクリアされていてスコア画像がうまく表示されない 2D描画の時は画像1のようにできたのに**スカイドームを実装**して同じことをやろうとすると画像2のようになりうまくいかない
該当のソースコード
C++[score]
1#include "score.h" 2#include "polygon.h" 3#include "Texture.h" 4#include "number.h" 5 6//***************************************************************************** 7// マクロ定義 8//***************************************************************************** 9#define FRAME_TEXTURENAME L"data/texture/frame_score.png" // テクスチャファイル名 10 11#define FRAME_SIZE_X 340 // ポリゴンのサイズ 12#define FRAME_SIZE_Y 80 // ポリゴンのサイズ 13#define FRAME_POS_X \ 14(SCREEN_WIDTH/2-FRAME_SIZE_X/2) // ポリゴンの表示位置 15#define FRAME_POS_Y \ 16(SCREEN_HEIGHT/2-FRAME_SIZE_Y/2)// ポリゴンの表示位置 17 18#define SCORE_WIDTH 8 // 表示桁数 19#define SCORE_SIZE_X 35 // 文字のサイズ 20#define SCORE_SIZE_Y 50 // 文字のサイズ 21#define SCORE_POS_X \ 22(FRAME_POS_X-SCORE_SIZE_X*(SCORE_WIDTH/2))// 文字の表示位置 23#define SCORE_POS_Y \ 24(FRAME_POS_Y+SCORE_SIZE_Y/2-8) // 文字の表示位置 25 26//***************************************************************************** 27// グローバル変数 28//***************************************************************************** 29static ID3D11ShaderResourceView* g_pTexture; // テクスチャ 30static int g_nScore; 31static XMFLOAT2 g_vPos = 32XMFLOAT2(SCORE_POS_X, SCORE_POS_Y); 33 34//============================================================================= 35// スコア表示の初期化処理 36//============================================================================= 37HRESULT CScore::Init() 38{ 39 // テクスチャ読み込み 40 HRESULT hr = CreateTextureFromFile(GetDevice(), 41 FRAME_TEXTURENAME, &g_pTexture); 42 43 // スコア初期化 44 g_nScore = 0; 45 46 return hr; 47} 48 49//============================================================================= 50// スコア表示の終了処理 51//============================================================================= 52void CScore::Uninit() 53{ 54 // テクスチャ開放 55 SAFE_RELEASE(g_pTexture); 56} 57 58//============================================================================= 59// スコア表示の更新処理 60//============================================================================= 61void CScore::Update() 62{ 63 // (何もしない) 64} 65 66//============================================================================= 67// スコア表示処理 68//============================================================================= 69void CScore::Draw() 70{ 71 ID3D11DeviceContext* pDeviceContext = 72 GetDeviceContext(); 73 74 // 全体を明るい緑で表示 75 CPolygon::SetColor(0.0f, 1.0f, 0.0f); 76 77 // スコア枠描画 78 CPolygon::SetPos(FRAME_POS_X, FRAME_POS_Y); 79 CPolygon::SetSize(FRAME_SIZE_X, FRAME_SIZE_Y); 80 CPolygon::SetTexture(g_pTexture); 81 CPolygon::Draw(pDeviceContext); 82 83 // スコア表示 84 DrawNumber(&g_vPos, 85 (unsigned)g_nScore, SCORE_WIDTH); 86 87 // 色を元に戻す 88 CPolygon::SetColor(1.0f, 1.0f, 1.0f); 89}
試したこと
画像の背景を透過したり、画像1のゲームのコードをコピペしたりしました。
補足情報(FW/ツールのバージョンなど)
VisualC++
SDKバージョン10.0.16299.0
ツールVisualStudio
Texture.cppやpolygon.cppはすでにできているものとします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。