今日プログラムを組もうとVisual C++ 2008 Express Editionを立ち上げ、前回まで普通に動いていたプログラムをロードする画像だけ変えてビルドして立ち上げたところ作成されたウィンドウには何も表示されず、ボタンを押しても反応がありません。そこでそのプログラムを組む前にバックアップを取っておいたプログラムを読み込んで起動させたのですが、そちらの方も同じように起動できませんでした。この場合どうすればまたプログラムが普通に動いてくれるようになるのでしょうか?ご教授お願いします。
ちなみにプログラムの内容は メニュー表示→ゲームスタートを選ぶとゲーム画面に移行→ゲーム画面で左右キーを押すと自機が動く というもので、読み込んだ二つのプログラムソースは次のようなものです。
ロードする画像だけを変えたプログラム
#include "DxLib.h"
int Key[256]; // キーが押されているフレーム数を格納する
// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
//変数の用意
int Back1;
int Waku1;
int Waku2;
int mode;
int SelectNum;
int ziki_img[12];
//構造体の用意
// メニュー用構造体
typedef struct{
int x, y; // 座標格納用変数
char name[128]; // 項目名格納用変数
} MenuElement_t ;
MenuElement_t MenuElement[4]={// メニュー項目要素
{ 260, 285, "ゲームスタート" }, // タグの中身の順番で格納される。xにが、yにが、nameに"ゲームスタート"が
{ 280, 335, "おまけ" },
{ 280, 385, "コンフィグ" },
{ 280, 435, "ゲーム終了" },
};
// 自機データ構造体
typedef struct{
int x, y; // 座標格納用変数
int maxx; // 移動範囲右端
int minx; // 移動範囲左端
int cnt; // 画像ループ用変数
int no; // 画像ループ用変数
int z; // 残機数
int b; // 残りボム数
} ziki_t ;
ziki_t ziki={200,444,609,30,0,0,3,3};// 自機データ
//関数の用意
//自機操作関数
void Zmove(){
ziki.no=(ziki.cnt%48)/12;
ziki.cnt++;
if(Key[KEY_INPUT_LEFT]>=1 && ziki.x>=ziki.minx && Key[KEY_INPUT_RIGHT]==0){ //右キーが押されている間
ziki.no += 8;
ziki.x -=2;
}
if(Key[KEY_INPUT_RIGHT]>=1 && ziki.x<=ziki.maxx && Key[KEY_INPUT_LEFT]==0){
ziki.no += 4;
ziki.x +=2;
}
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK );
//ウィンドウモードに設定,DXライブラリ初期化処理,描画先を裏画面に設定
//変数
//変数への数値の代入
mode = 0;
SelectNum = 0; // 現在の選択番号
ziki.x = (ziki.maxx+ziki.minx)/2;// 自機初期位置
ziki.no =(ziki.cnt%48)/12; // 画像ループ用変数設定
//変数への画像の格納
Back1 = LoadGraph("画像/システム/神社周辺.png");
Waku1 = LoadGraph("画像/システム/枠.png");
Waku2 = LoadGraph("画像/システム/パラメータ表示部分.png");
LoadDivGraph("画像/キャラ/自機.png",16,4,4,66,66,ziki_img);
//ループ部分
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 & gpUpdateKey()==0 ){//while(裏画面の物を表画面に写す,メッセージ処理,画面を消去,キーの状態の更新)
if(mode==0){
mode=10;
}
//タイトル画面
else if(mode==10){
//計算フェーズ
//下方向への移動
if( Key[ KEY_INPUT_DOWN ] == 1 ){ // 下キーが押された瞬間だけ処理
SelectNum = ( SelectNum + 1 ) % 4; // 現在の選択項目を一つ下にずらす(ループする)
for( int i=0; i<4; i++ ){ // メニュー項目数である個ループ処理
if( i == SelectNum ){ // 今処理しているのが、選択番号と同じ要素なら
MenuElement[i].x = 260; // 座標をにする
} else { // 今処理しているのが、選択番号以外なら
MenuElement[i].x = 280; // 座標をにする
}
}
}
//上方向への移動
if( Key[ KEY_INPUT_UP ] == 1 ){ // 上キーが押された瞬間だけ処理
SelectNum = ( SelectNum + 3 ) % 4; // 現在の選択項目を一つ上にずらす(逆ループする)
for( int i=0; i<4; i++ ){ // メニュー項目数である個ループ処理
if( i == SelectNum ){ // 今処理しているのが、選択番号と同じ要素なら
MenuElement[i].x = 260; // 座標をにする
} else { // 今処理しているのが、選択番号以外なら
MenuElement[i].x = 280; // 座標をにする
}
}
}
if( Key[ KEY_INPUT_A] == 1 ){
if(SelectNum == 0){
mode=20;
}
if(SelectNum == 3){
break;
}
}
//描画フェーズ
for( int i=0; i<4; i++ ){ // メニュー項目を描画
DrawFormatString( MenuElement[i].x, MenuElement[i].y, GetColor(255,255,255), MenuElement[i].name );
}
}
//ゲーム画面
else if(mode==20){
//計算フェーズ
//自機の設定
Zmove();
//描画フェーズ
DrawGraph(20,80,Back1,TRUE);
DrawRotaGraph(ziki.x,444,1.0,0.0,ziki_img[ziki.no],TRUE);
DrawGraph(0,0,Waku1,TRUE);
DrawGraph(20,15,Waku2,TRUE);
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
#include "DxLib.h"
int Key[256]; // キーが押されているフレーム数を格納する
// キーの入力状態を更新する
int gpUpdateKey(){
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
for( int i=0; i<256; i++ ){
if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
} else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
return 0;
}
//変数の用意
int Back1;
int Waku1;
int Waku2;
int mode;
int SelectNum;
int ziki_img[12];
//構造体の用意
// メニュー用構造体
typedef struct{
int x, y; // 座標格納用変数
char name[128]; // 項目名格納用変数
} MenuElement_t ;
// 自機データ構造体
typedef struct{
int x, y; // 座標格納用変数
int maxx; // 移動範囲右端
int minx; // 移動範囲左端
int cnt; // 画像ループ用変数
int no; // 画像ループ用変数
int z; // 残機数
int b; // 残りボム数
} ziki_t ;
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen( DX_SCREEN_BACK );
//ウィンドウモードに設定,DXライブラリ初期化処理,描画先を裏画面に設定
//構造体
// メニュー項目要素
MenuElement_t MenuElement[4]={
{ 260, 285, "ゲームスタート" }, // タグの中身の順番で格納される。xにが、yにが、nameに"ゲームスタート"が
{ 280, 335, "おまけ" },
{ 280, 385, "コンフィグ" },
{ 280, 435, "ゲーム終了" },
};
// 自機データ
ziki_t ziki={200,444,609,30,0,0,3,3};
//変数
//変数への数値の代入
mode = 0;
SelectNum = 0; // 現在の選択番号
ziki.x = (ziki.maxx+ziki.minx)/2;// 自機初期位置
ziki.no =(ziki.cnt%48)/12; // 画像ループ用変数設定
//変数への画像の格納
Back1 = LoadGraph("画像/システム/神社周辺.png");
Waku1 = LoadGraph("画像/システム/枠.png");
Waku2 = LoadGraph("画像/システム/パラメータ表示部分.png");
LoadDivGraph("画像/キャラ/自機.png",12,4,3,40,40,ziki_img);
//ループ部分
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 & gpUpdateKey()==0 ){//while(裏画面の物を表画面に写す,メッセージ処理,画面を消去,キーの状態の更新)
if(mode==0){
mode=10;
}
//タイトル画面
else if(mode==10){
//計算フェーズ
//下方向への移動
if( Key[ KEY_INPUT_DOWN ] == 1 ){ // 下キーが押された瞬間だけ処理
SelectNum = ( SelectNum + 1 ) % 4; // 現在の選択項目を一つ下にずらす(ループする)
for( int i=0; i<4; i++ ){ // メニュー項目数である個ループ処理
if( i == SelectNum ){ // 今処理しているのが、選択番号と同じ要素なら
MenuElement[i].x = 260; // 座標をにする
} else { // 今処理しているのが、選択番号以外なら
MenuElement[i].x = 280; // 座標をにする
}
}
}
//上方向への移動
if( Key[ KEY_INPUT_UP ] == 1 ){ // 上キーが押された瞬間だけ処理
SelectNum = ( SelectNum + 3 ) % 4; // 現在の選択項目を一つ上にずらす(逆ループする)
for( int i=0; i<4; i++ ){ // メニュー項目数である個ループ処理
if( i == SelectNum ){ // 今処理しているのが、選択番号と同じ要素なら
MenuElement[i].x = 260; // 座標をにする
} else { // 今処理しているのが、選択番号以外なら
MenuElement[i].x = 280; // 座標をにする
}
}
}
if( Key[ KEY_INPUT_A] == 1 ){
if(SelectNum == 0){
mode=20;
}
if(SelectNum == 3){
break;
}
}
//描画フェーズ
for( int i=0; i<4; i++ ){ // メニュー項目を描画
DrawFormatString( MenuElement[i].x, MenuElement[i].y, GetColor(255,255,255), MenuElement[i].name );
}
}
//ゲーム画面
else if(mode==20){
//計算フェーズ
//自機の設定
ziki.no=(ziki.cnt%48)/12;
ziki.cnt++;
if(Key[KEY_INPUT_LEFT]>=1 && ziki.x>=ziki.minx && Key[KEY_INPUT_RIGHT]==0){ //右キーが押されている間
ziki.no += 8;
ziki.x -=2;
}
if(Key[KEY_INPUT_RIGHT]>=1 && ziki.x<=ziki.maxx && Key[KEY_INPUT_LEFT]==0){
ziki.no += 4;
ziki.x +=2;
}
//描画フェーズ
DrawGraph(20,80,Back1,TRUE);
DrawRotaGraph(ziki.x,444,1.0,0.0,ziki_img[ziki.no],TRUE);
DrawGraph(0,0,Waku1,TRUE);
DrawGraph(20,15,Waku2,TRUE);
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}