具体的には、添付した画像にありますが、「プログラムを終了します。 (自分でDrawString使って打ったもの)」とでます。
どなたか原因がわかる方はいますか?つまり、
なお、作っているものはタイトル画面で、ゲームを始める、終了・・などのものです。
真・ゲームプログラミングの館のメニュー画面の作り方を改変して作成しました。
まだ、終了させるプログラムは作っていませんが、本来ならばMキーを押さなければならないはずなのになぜ表示されるのでしょうか?
いかにソースを記載します。
//Mario.cpp
#include"DxLib.h"
typedef enum {
eScene_Menu, //メニュー画面
eScene_Game, //ゲーム画面
eScene_Config, //終了画面
eScene_Title, //タイトル画面
} eScene;
int Music1,Music2,Count = 0,Count1 = 0, BackGround1,Title1;//Music1:海戦,Music2:魔王の城,Count:音楽が流れている時間を継続,BackGround1:背景1
static int Scene = eScene_Menu; //現在の画面(シーン)
void UpdateScene() {
//DrawString(0, 20, "Gキーでゲーム画面、Cキーで設定、Mキー終了", GetColor(255, 255, 255));
if (CheckHitKey(KEY_INPUT_G) != 0) {
Scene = eScene_Game;
}
if (CheckHitKey(KEY_INPUT_C) != 0) {
Scene = eScene_Config;
}
if (CheckHitKey(KEY_INPUT_M) != 0) {
Scene = eScene_Menu;
}
}
//メニュー画面
void Menu() {
// ClearDrawScreen();//画面を初期化
DrawString(0, 0, "プログラムを終了します。", GetColor(255, 255, 255));
}
//ゲーム画面
void Game() {
// ClearDrawScreen();//画面を初期化
DrawString(0, 0, "ゲーム画面です。", GetColor(255, 255, 255));
StopSoundMem(Music1);
PlaySoundMem(Music2, DX_PLAYTYPE_BACK); // GAME時の曲を再生する(ROOP)
}
//設定画面
void Config() {
// ClearDrawScreen();//画面を初期化
DrawString(0, 0, "設定画面です。", GetColor(255, 255, 255));
}
void Title() {//Default(初期)の画面・音声設定
Title1 = LoadGraph("画像/Title.png");//タイトル画像をロード
if (Count % 5580 == 0) { // Full
PlaySoundMem(Music1, DX_PLAYTYPE_BACK); // 背景時の曲を再生する(ROOP)
}
Count++;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定
Music1 = LoadSoundMem("Sound/amacya-kaisen.ogg"); // サウンド/1up.wavをロードし、識別番号をMusic1に格納
Music2 = LoadSoundMem("Sound/甘茶工房-魔王の城.ogg"); //サウンドをメモリにロード,Music2に格納
Title1 = LoadGraph("画像/Title.png");//タイトル画像をロード
Title();
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
DrawGraph(0, 0, Title1, TRUE); // データハンドルを使って画像を描画
SetDrawScreen(DX_SCREEN_BACK);
switch (Scene) {//現在のシーンにあった処理をする
case eScene_Menu://現在のシーンがメニューなら
Menu();//メニュー画面
break;
case eScene_Game://現在のシーンがゲームなら
Game();//ゲーム画面
break;
case eScene_Config://現在のシーンが設定なら
Config();//設定画面
break;
}
UpdateScene();//シーンを更新する
}
/* for (;;)
{
if (CheckHitKey(KEY_INPUT_RETURN) == 0)
{
InitSoundMem();
break;
}
else
{
Menu();
}
}*/
DxLib_End(); // DXライブラリ終了処理
return 0;
}
以上です。
よろしくお願いします。