クラスの使い方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
himigami
記事: 2
登録日時: 10年前

クラスの使い方

#1

投稿記事 by himigami » 10年前

現在DXライブラリでゲームを作っているのですが、クラスの使い方として適切なのかどうかが不安なので教えて欲しいのです。

コード:

//A.h
class FPS{
public:
	static bool OverFPS;
	static int SetFPS;
	static double Revision;
	static double WindowXRev;
	static double WindowYRev;
	FPS();
	static void DrawFPS();
	static void SettingFPS();
	static void WaitFPS();
private:
	static int NowTime;
	static int StartTime;
	static int NowFPS;
	static int NowCountFPS;
	static int OneFStart;
	static int OneFNow;
	static double WaitTime;
};

コード:

//A.cpp

#include "A.h"

int FPS::NowTime;
int FPS::StartTime;
double FPS::WaitTime;
int FPS::NowCountFPS;
int FPS::SetFPS;
int FPS::NowFPS;
int FPS::OneFStart;
int FPS::OneFNow;
bool FPS::OverFPS;
double FPS::Revision;
double FPS::WindowXRev;
double FPS::WindowYRev;

FPS::FPS(){
//初期化
}


void FPS::SettingFPS(){
//FPS設定
	return;
}

void FPS::DrawFPS(){
//値表示
        return;
}

void FPS::WaitFPS(){
//待つ時間
	return;
}

コード:

//Main.h

#include "A.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	if (DxLib_Init() == -1)		// DXライブラリ初期化処理
	{
		return -1;			// エラーが起きたら直ちに終了
	}
        FPS a;
        //以降他のファイルはヘッダーの読み込みだけで使用

	DxLib_End();				// DXライブラリ使用の終了処理
	return 0;				// ソフトの終了 
}
※関数の中身は簡略しています。

とこのように静的で宣言して他のファイルでも値を共有して使えるようにしています。こういった使い方はあまりよろしくないのでしょうか?

アバター
Ketty
記事: 103
登録日時: 11年前

Re: クラスの使い方

#2

投稿記事 by Ketty » 10年前

これは、FPS制御するためのクラスですよね(??)
であれば、1ヶ所だけ、例えばメインループを実施するであろうMain.hだけが参照すべきだと思うんです。

たとえば、SettingFPS()なんていうメソッドは、いろんな所から呼び出されると困るのではないですか?
(あっちこっちからFPSを変更されるとゲームが大変なことに…)

himigamiさんが、
これを、他のファイル(クラス?)に公開したいと思われている理由はなんでしょうか?
WindowXRevとかWindowYRevというやつが何かわからないのですが、
FPS制御と関係ない項目なのでしたら、それは別のクラスにした方がよいと思います。

himigami
記事: 2
登録日時: 10年前

Re: クラスの使い方

#3

投稿記事 by himigami » 10年前

あ、Main.hじゃなくてMain.cppでしたねすいません。
WindowXrevとかはウィンドウサイズの補正値ってだけでここのクラスで作るべきものではないですね。
確かに参照先がメインループだけで済むしこのような処理じゃなくてもいいですね。
指摘されて無駄処理が削減出来ました。ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る