keydataをいじるkeyクラス、のポインタを管理するlistクラス、を管理するマネージャ、のつもり。
ブレークポイント作るとDxlibを開放できないようだし、どうしようか。
#include"DxLib.h"
#include
#ifndef C_KEYCHECKGET_H
#define C_KEYCHECKGET_H
struct key_data{
key_data(short unsigned int input):macro(input),state(0){}
short unsigned int macro;
bool state;
};
class C_key{
private:
struct key_data data;
public:
C_key(short unsigned int key_macro);
key_data* tell_data();
bool check();//引数にDxlibのキーマクロ入れるとキーの状態を返すよ。
};
struct key_list{
private:
std::vector ky;
//std::vector::iterator iter;
public:
std::vector::iterator iter;
key_list();
void add(C_key*);
void destroy(C_key*);
std::vector* give_list();
};
class C_key_manager{
private:
C_key_manager();
C_key_manager(const C_key_manager&);
C_key_manager& operator=(const C_key_manager&);
char keybuf[256];
public:
key_list list;
static C_key_manager* instance();
void renew();//キーの押し下げ状態の更新。ループに入れる必要あり。
};
#endif
ひとつの管理者が複数を管理する構造はありふれているだろうし、出来ないとまずい。参照渡しって今更だけど凄い。
一度クラス図でも描いて整理しようと思う。ポインタのvectorがまずいのかな。コピーやら代入の失敗やらありそう。コピーコンストラクタの定義でもしてみようか。