環境はvisual studio 2019,DXライブラリ
行いたいこと
0. キー入力したものをローマ字で入力したい(例、a=あ、ohayou=おはよう)
0. 入力した文字を配列に入れたい
0. 配列に入れた文字を描画したい
これはキー入力のためにプログラムです。
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; }
上のキー入力のプログラムを使って、例えば「おはよう」とローマ字で入力した文字を描画したいです。
今のところはローマ字ではないですが、半角のaを描画するところまで出来ています。
以下は全体のプログラムです。
#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 WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DINPUT_JOYSTATE input; int i; SetGraphMode(1770, 1580, 32); // ウィンドウの大きさを指定 ChangeWindowMode(TRUE); // 全画面ではなくウインドウを使用 if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理 SetDrawScreen(DX_SCREEN_BACK); // 裏画面を使用する設定 // ウインドウモードで起動 ChangeWindowMode(TRUE); // DXライブラリの初期化 if (DxLib_Init() < 0) return -1; // 描画先を裏画面にする SetDrawScreen(DX_SCREEN_BACK); // メインループ(何かキーが押されたらループを抜ける) while (ProcessMessage() == 0) { gpUpdateKey(); unsigned int Cr; // 画面のクリア ClearDrawScreen(); char mozi = 0; if (Key[KEY_INPUT_A] == 1) { // 右キーが押された瞬間なら DrawFormatString(100, 200, GetColor(255, 255, 255), "a"); } // 白色の値を取得 Cr = GetColor(255, 255, 255); // 文字列の描画 //DrawString(250, 240 - 32, "Hello C World!", Cr); // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; } コード
1~3において、どう作ってよいかわかりません。どうか知恵を貸してください。
ですが、ただ教えて頂くのでは勉強にならないので、詳しい説明を付けて頂けるとありがたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/14 02:15 編集
2020/02/14 03:32
2020/02/14 12:41 編集
2020/02/14 08:49
2020/02/14 09:40
2020/02/14 10:46 編集
2020/02/14 17:13
2020/02/14 17:39
2020/02/14 17:58
2020/02/15 12:06