新ゲームプログラミングの館を一通り見終え、とりあえずサンプルを改変してみようとキーボードの入力状態の取得(2.9章)をファイル分割しようとしたのですがうまくいかなかったので質問させてください。
ここ数日ポインタに関するページ等を検索して勉強していたのですが、正直理解できたとは言い難く基本的な部分で間違っているような気がしています…
main.cpp
#include "DxLib.h"
#include"Key.h"
int Key[256]; // キーが押されているフレーム数を格納する
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
int x = 0;
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
gpUpdateKey(&Key[256]);
DrawFormatString(x, 0, GetColor(255, 255, 255), "?!"); // x,0 の位置に白で ?! を描画
if (Key[KEY_INPUT_RIGHT] == 1) { // 右キーが押された瞬間なら
x = x + 50; // xを50加算
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
#include"DxLib.h"
#include"Key.h"
static void gpUpdateKey(int *Key) {
char tmpKey[256]; // 現在のキーの入力状態を格納する
GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る
for (int i = 0; i<256; i++) {
if (tmpKey[i] != 0) { // i番のキーコードに対応するキーが押されていたら
Key[i]++; // 加算
}
else { // 押されていなければ
Key[i] = 0; // 0にする
}
}
}
また、ポインタを勉強するにあたっておすすめのサイト等教えていただければ幸いです…