ページ 11

共通ヘッダファイル

Posted: 2011年12月28日(水) 16:16
by C-lan
現在、DXlibでゲームを制作しているのですが、ヘッダファイルの配置の仕方に迷っています

このヘッダファイルはキャラクター全般の抽象クラスやキーの入力状態を管理する関数などが記述されており、
タイトル画面やゲーム本遍などで使っていきたいと思っています

そこでこのcommon.hファイルの配置で迷っています

コード:

//common.h

#ifndef IKD_COMMON_H
#define IKD_COMMON_H

#include "DxLib.h"

//キー格納配列
int Key[256];
 
//キー押下状態取得関数
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
	//全キーを取得
    char GetHitKeyStateAll_Key[256];
    GetHitKeyStateAll( GetHitKeyStateAll_Key );

	//全キー256個の状態を調べる
    for(int i=0;i<256;i++){
        if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
        else                            GetHitKeyStateAll_InputKey[i]=0;
    }
    return 0;
}

//キャラクタークラス
class Character{
	public:
		int Mhandle;
		VECTOR pos;
		virtual void Move() = 0;
		virtual int load() = 0;
};

//主人公クラス::キャラクタークラスを継承
class Hero : public Character{
	public:
		void Move();
		int  load();
};


//TitleScene.cpp

#include "TitleScene.h"
#include "common.h"

//ここで処理をする
//タイトル画面でキャラを使ったり、common.hに記述された関数でキー入力の管理をしたい





//MyGameScene.cpp
#include "MyGameScene.h"
#include "common.h"

//Title.cppと同様のことをしていきたい




//そのほかのcppファイルでもキー入力管理や共通の処理をcommon.hでやっていきたい


このような状況下においてどのような適切な管理の仕方があるのでしょうか?
是非とも教えて頂きたいと思います

Re: 共通ヘッダファイル

Posted: 2011年12月28日(水) 20:10
by White
ヘッダーの配置とはどういう意味を指すのでしょう?
#includeのソース内での位置でしょうか?
それともプロジェクトのフォルダ管理のしかた?

すべてのソースファイルで読み込むヘッダーであるならば今の方法で問題ないのではないでしょうか?
もしクラスの定義と関数の宣言を分けたいということであればクラスの定義と関数の宣言をそれぞれ別々の
ヘッダーにしてcommon.hでどちらも読み込んでやればいいだけです(やる意味がないですが)。

Re: 共通ヘッダファイル

Posted: 2011年12月28日(水) 21:20
by softya(ソフト屋)
ヘッダにプログラムを書くのはよく有りませんし、common.hにclass Characterがあるもの設計を考えなおしたほうが良いと思います。本当に共通の処理だけにしてください。それとexternの使い方も覚えて下さい。