画像が表示されない
Posted: 2011年8月21日(日) 14:43
DXライブラリでゲームを作っていたのですが、
なぜか画像が表示されません。 どこか間違っていると思うのですがよく分かりません。
ソース:
まず、最初にタイトルが表示されるのですが、
そのとき背景に画像を使おうと思い、640x480の画像を作成し、表示させようとしています。
ただ、なぜか表示されません。
printfDx("hello");と入力するとhelloと何回も表示されるので、表示されているはずなのですが、
うまく表示できていません。
次に、zキーを押したら、ゲーム画面に移動するという仕様なのですが、
ゲーム画面でも画像が表示されません。
移動してないのでは無いか?とも思いましたが、
ゲーム画面でのデバッグモード(座標表示)は出来たので、ゲーム画面に移動していないというわけでもなさそうです。
なぜか画像が表示されません。 どこか間違っていると思うのですがよく分かりません。
ソース:
#include "DxLib.h"
// 列挙
enum Menu{
GAME_TITLE, GAME_MAIN,
GAME_CLEAR, GAME_OVER
} Menu = GAME_TITLE;
bool prev; //キーを押したか判定用
// プロトタイプ宣言
//Drに処理をかく
void GoGameMain(); //ゲーム本体の処理
void DrGameMain();
void DrGameOver(); //ゲームオーバー画面
void GoGameOver();
void GoGameClear(); //ゲームクリア画面
void DrGameClear();
void GoGameTitle(); //ゲームタイトル画面
void DrGameTitle();
bool InputKey(int key); //キー入力判定
// 座標セット
int My_x = 0;
int My_y = 0;
int En_x = 0;
int En_y = 0;
// 画像のロード
int My = LoadGraph("img/img_my.png");
int En = LoadGraph("img/img_en.png");
int Bg = LoadGraph("img/img_bg.png");
// 色の作成
int Bla = GetColor(0,0,0);
int Red = GetColor(255,0,0);
int Gre = GetColor(0,255,0);
int Blu = GetColor(0,0,255);
int Aqu = GetColor(0,255,255);
int Pur = GetColor(255,0,255);
int Whi = GetColor(255,255,255);
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
// 初期化
ChangeWindowMode(TRUE);
SetMainWindowText("TEST"); //タイトル設定
DxLib_Init(); //DX 初期化
SetDrawScreen(DX_SCREEN_BACK); //裏画面処理
SetWindowSizeChangeEnableFlag(TRUE); //サイズ変更
//ループ処理
while(1){
// 初期化
if(ProcessMessage() != 0){ break; }
if(CheckHitKey(KEY_INPUT_ESCAPE) == 1){ break; }
ClearDrawScreen(); //画面の初期化
//メニュー
switch(Menu){
case GAME_TITLE:
DrGameTitle();
break;
case GAME_MAIN:
DrGameMain();
break;
case GAME_CLEAR:
DrGameClear();
break;
case GAME_OVER:
DrGameOver();
break;
}
ScreenFlip();
}
DxLib_End();
return 0;
}
//タイトル画面
void GoGameTitle(){
Menu = GAME_TITLE;
}
void DrGameTitle()
{
DrawGraph(0,0, Bg, FALSE);
WaitKey();
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(InputKey(key)==true) GoGameMain();
}
//ゲーム本編
void GoGameMain(){
Menu = GAME_MAIN;
}
// ゲーム内容
void DrGameMain(){
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_UP) My_y -= 5;
if(key & PAD_INPUT_DOWN) My_y += 5;
if(key & PAD_INPUT_LEFT) My_x -= 5;
if(key & PAD_INPUT_RIGHT) My_x += 5;
DrawGraph(My_x,My_y, My, TRUE);
if((CheckHitKey(KEY_INPUT_D) && CheckHitKey(KEY_INPUT_E)) == 1){
clsDx(); //文字削除
printfDx("X:%d Y:%d", My_x,My_y); //文字表示
}
}
//ゲームクリア画面
void GoGameClear(){
Menu = GAME_CLEAR;
}
void DrGameClear(){
}
//ゲームオーバー画面
void GoGameOver(){
Menu = GAME_OVER;
}
void DrGameOver(){
}
bool InputKey(int key)
{
if(key & PAD_INPUT_A){
if(prev == false){
prev == true;
return true;
} else {
prev = false;
}
}
return false;
}
そのとき背景に画像を使おうと思い、640x480の画像を作成し、表示させようとしています。
ただ、なぜか表示されません。
printfDx("hello");と入力するとhelloと何回も表示されるので、表示されているはずなのですが、
うまく表示できていません。
次に、zキーを押したら、ゲーム画面に移動するという仕様なのですが、
ゲーム画面でも画像が表示されません。
移動してないのでは無いか?とも思いましたが、
ゲーム画面でのデバッグモード(座標表示)は出来たので、ゲーム画面に移動していないというわけでもなさそうです。