[過去ログ] C++でRPGゲームを作成する (908レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
837
(2): ◆UUwiUCL1P6 2011/03/26(土)10:36 ID:pvmCllah(1/9) AAS
必要な変数(静的メンバ)を設定します。

.h
public:
enum { JOY1,JOY2,JOYMAX,};

private:
static IDirectInput8* input;

static IDirectInputDevice8* keyboard;
省11
838: ◆UUwiUCL1P6 2011/03/26(土)11:18 ID:pvmCllah(2/9) AAS
DirectInputの初期化です。

GameInput::Init
input = NULL;
DirectInput8Create( GetModuleHandle( NULL ), DIRECTINPUT_VERSION, IID_IDirectInput8, reinterpret_cast< void** >( &input ), NULL );

GameInput::Free
if ( input ) {
input->Release();
省4
841: ◆UUwiUCL1P6 2011/03/26(土)14:20 ID:pvmCllah(3/9) AAS
>>840
では、namespace{}での括りは外してしまってください。
842
(2): ◆UUwiUCL1P6 2011/03/26(土)14:22 ID:pvmCllah(4/9) AAS
keyboardの初期化です。

GameInput::Init
input->CreateDevice( GUID_SysKeyboard, &keyboard, NULL );
keyboard->SetDataFormat( &c_dfDIKeyboard );
keyboard->SetCooperativeLevel( Window.Handle(), DISCL_FOREGROUND|DISCL_NONEXCLUSIVE );
{
DIPROPDWORD dipd = {};
省13
844: ◆UUwiUCL1P6 2011/03/26(土)14:40 ID:pvmCllah(5/9) AAS
WINDOWクラスに下記の関数を作成してください。

public:
const HWND Handle( void ) const { return handle; }

>>842
GameInput::Init
keyboard = NULL // ねんのため追加してください
input->CreateDevice( GUID_SysKeyboard, ...
省3
848
(1): ◆UUwiUCL1P6 2011/03/26(土)16:40 ID:pvmCllah(6/9) AAS
>>845
下記を宣言してください。

extern WINDOW window;

この先いろんなところで参照するので、ヘッダに記載した方がよいです。

(>>846)のような意見も出ていますし、ソースを断片的に記載していくのは効率や誤謬が出やすいので、
別の手段を検討したほうがよいかも知れません。
ブログかアップローダを指定いただければそちらでお渡ししますんで、
省1
849
(1): ◆UUwiUCL1P6 2011/03/26(土)16:53 ID:pvmCllah(7/9) AAS
extern WINDOW Window; でした(最初大文字)

ソース全体でこれだけはグローバル変数にしています。
他の変数はクラスの静的メンバでprivateにしています(IDirectInput8* input等)。

ここに書いてやり取りするのは楽でいいんですけど先々難しそうですね。
スレッドのリサイクル法が適用されて日記帳扱いになればOKかも。
851
(1): ◆UUwiUCL1P6 2011/03/26(土)18:14 ID:pvmCllah(8/9) AAS
>>850
gmdevにDirectInputの.h/.cppを置きました。
外部リンク[txt]:gmdev.xrea.jp

>common.hみたいなヘッダ
そうです。自分専用のマクロとか定義とかの置き場にヘッダ作りますよね。
そこに入れておいてください。

ついでに↓もお願いします。
省5
854: ◆UUwiUCL1P6 2011/03/26(土)19:15 ID:pvmCllah(9/9) AAS
>>852
index は static です。付け忘れました。

>>853
DATA_MAXです。記述ミス。

入力ワーク回りで間違い多いのは、現在その部分は環状リストで可変長で実装しているので、
急ごしらえで変更したためです。

一部、ヘッダにあって実装されていない関数(JoyPush等)は実際にゲーム中で使用する関数です。
省3
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s