DXライブラリ タイトルバー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
L'z

DXライブラリ タイトルバー

#1

投稿記事 by L'z » 8年前

DXライブラリを使って作った作品をみるとウィンドウのタイトルバーに、
ゲーム名のあとにFPSを表示しているものをみます

タイトルバーの文字の変更をSetMainWindowText関数で変更できることは知っているのですが
DrawFormatString関数のように書式付きで文字列をいれることができません

FPSは自分で計算して出すものなのでタイトルバーに書式付きで文字列を出力する関数を
調べてみたのですが、非公開関数も調べて見ましたがそれらしきものはみあたりません

そこで毎フレームごとにchar型変数にゲーム名とFPSを入れ、
それをSetMainWindowTextで毎回更新する方法を考え、
次のようなコードを考えたのですがもっといい方法があるような気がします
タイトルバーにFPSを表示している方でもっといい方法を知っていればご教授ください
フレームごとに平均FPSを表示できればこの方法と全く違ってもかまいません

コード:

char titlebar[30];
double ave_fps;

ave_fps = getAverageFps(); // 平均FPSを取得
sprintf(titlebar,"ゲームタイトル  [%f f]",ave_fps);

SetMainWindowText( titlebar ); //これを毎フレーム行う

beatle
記事: 1280
登録日時: 9年前
住所: 埼玉
連絡を取る:

Re: DXライブラリ タイトルバー

#2

投稿記事 by beatle » 8年前

僕はL'zさんのやり方が普通だと思います.
書式付き関数がもしあったとしても,結局内部でほとんど同じ事をするだけですから.

L'z

Re: DXライブラリ タイトルバー

#3

投稿記事 by L'z » 8年前

やっぱりこうするしかないですか

ではこの方法ですることにします

ありがとうございました

アバター
あたっしゅ
記事: 334
登録日時: 10年前
住所: 東京23区
連絡を取る:

Re: DXライブラリ タイトルバー

#4

投稿記事 by あたっしゅ » 8年前

L'z さんが書きました: タイトルバーにFPSを表示している方でもっといい方法を知っていればご教授ください
フレームごとに平均FPSを表示できればこの方法と全く違ってもかまいません

コード:

char titlebar[30];
double ave_fps;

ave_fps = getAverageFps(); // 平均FPSを取得
sprintf(titlebar,"ゲームタイトル  [%f f]",ave_fps);

SetMainWindowText( titlebar ); //これを毎フレーム行う
getAverageFps() って DX ライブラリの非公開関数 ?
(1)DXライブラリを 3.06e にした。
(2)GetAverageFps() にしてみたりした
(3)extern double getAverageFps(); とかしてみたけど、リンクできなかった。


あと、「ご教授(きょうじゅ)」は「ご教示(きょうじ)」では ?
手提鞄あたっしゅ、[MrAtassyu] http://ameblo.jp/mratassyu/
手提鞄屋魚有店(てさげかばんやうおありてん)
レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。

L'z

Re: DXライブラリ タイトルバー

#5

投稿記事 by L'z » 8年前

getAverageFps();
は自作関数でDXライブラリのものではないです
L'z さんが書きました: FPSは自分で計算して出すものなので
という記述と最初が小文字からなのでわかるかと思い
とくに自作関数とは明記しませんでした

わかりづらくてすみません

アバター
あたっしゅ
記事: 334
登録日時: 10年前
住所: 東京23区
連絡を取る:

Re: DXライブラリ タイトルバー

#6

投稿記事 by あたっしゅ » 8年前

fps 表示を作ってみました。

コード:

#include <windows.h>  // 2012(H24)-01-25 class CFps 用
#include <mmsystem.h> // 2012(H24)-01-25 class CFps 用
// http://www.koj-m.sakura.ne.jp/ode/index.php?C%2FC%2B%2B%A5%B3%A1%BC%A5%C9%CA%D4
#pragma comment(lib,"winmm.lib")


//
// 2012(H24)-01-25 新設。
//
class CFps
{
	DWORD m_lastTime;
public:
	CFps(): m_lastTime( timeGetTime() ) {}
	virtual ~CFps() {}
	DWORD __fastcall getFps() {
		DWORD t = timeGetTime();
		DWORD res = 1000/( t - m_lastTime );

		m_lastTime = t;
		return res;
	}
};


int main()
{
	// (前略)
	{
		const int BUF_MAX = 80;
		char buf[ BUF_MAX ];

		sprintf( buf, "%s %ufps", msgTitle, getFps() );
		SetMainWindowText( buf ); //これを毎フレーム行う
	}
	// (後略)
}


// end.
手提鞄あたっしゅ、[MrAtassyu] http://ameblo.jp/mratassyu/
手提鞄屋魚有店(てさげかばんやうおありてん)
レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。

閉鎖

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