このスレッドはロックされています。記事の閲覧のみとなります。
トップページ > 記事閲覧
RPGのスタート画面を作りたいのですが・・
名前:renren 日時: 2020/01/25 19:00

#include <DxLib.h> #include <string> #include "Start.h" #include "TextureSoundLoader.h" int key[256]; // 0:入力されていない 1:入力された瞬間 2:入力されている void inputKey() { static char buf[256]; GetHitKeyStateAll(buf); for (int i = 0; i < 256; i++) { if (buf[i]) { if (key[i] == 0) key[i] = 1; else if (key[i] == 1) key[i] = 2; } else key[i] = 0; } } extern int Start_Background; void Startwait() { DrawGraph(0, 0, Start_Background, TRUE); SetFontSize(40); //サイズを20に変更 SetFontThickness(1); //太さを1に変更 ChangeFont("HGS創英角ポップ体"); //HGS創英角ポップ体に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);//アンチエイリアス&エッジ付きフォントに変更 DrawString(500, 600, "Please Key of 'Enter' ", GetColor(0, 0, 0)); // キー入力取得 if (key[KEY_INPUT_SPACE] != 0) { MenuDraw(); } } void MenuDraw() { DrawGraph(0, 0, Start_Background, TRUE); int DFP勘亭流 = CreateFontToHandle("DFP勘亭流", 20, 2, -1); std::string start = "Start"; std::string exstart = "ExStart"; std::string seting = "Seting"; std::string exit = "Exit"; SetFontSize(40); //サイズを20に変更 SetFontThickness(1); //太さを1に変更 ChangeFont("HGS創英角ポップ体"); //HGS創英角ポップ体に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);//アンチエイリアス&エッジ付きフォントに変更 DrawString(200, 300, start.c_str(), GetColor(255, 255, 255)); DrawString(220, 350, exstart.c_str(), GetColor(255, 255, 255)); DrawString(240, 400, seting.c_str(), GetColor(255, 255, 255)); DrawString(260, 450, exit.c_str(), GetColor(255, 255, 255)); } このコードで、Menu_Drawに入るときに、キーを入力した間だけしか表示されないです。どうすればよいでしょうか。
メンテ

Page: 1 |

Re: RPGのスタート画面を作りたいのですが・・ ( No.1 )
名前:どん 日時:2020/01/24 22:25

現在の場面を表す変数を作って,キー入力されたときにその変数の値をメニュー表示用の値に書き換えます. そして,その変数の値がメニュー表示用の値であるときに,メニュー画面を表示するとできると思います int game_status = 0;    ・    ・    ・ if (key[KEY_INPUT_SPACE] != 0) { game_status = 1; }    ・    ・    ・ if (game_status == 1) { MenuDraw(); }    ・    ・    ・
メンテ
Re: RPGのスタート画面を作りたいのですが・・ ( No.2 )
名前:renren 日時:2020/01/25 06:51

ほう、やってみます。
メンテ
Re: RPGのスタート画面を作りたいのですが・・ ( No.3 )
名前:renren 日時:2020/01/25 07:45

while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && gpUpdateKey() == 0) { これを問題の部分に追加することで実装できました。ありがとうございます。 ちなみにコード void Startwait() { while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && gpUpdateKey() == 0) { DrawGraph(0, 0, Start_Background, TRUE); SetFontSize(40); //サイズを20に変更 SetFontThickness(1); //太さを1に変更 ChangeFont("HGS創英角ポップ体"); //HGS創英角ポップ体に変更 ChangeFontType(DX_FONTTYPE_ANTIALIASING_EDGE);//アンチエイリアス&エッジ付きフォントに変更 DrawString(500, 600, "Please Key of 'Enter' ", GetColor(0, 0, 0)); // キー入力取得 if (key[KEY_INPUT_SPACE] != 0) { MenuDraw(); } } }
メンテ

Page: 1 |