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

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

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

#1

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

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
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

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

#2

投稿記事 by beatle » 13年前

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

L'z

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

#3

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

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

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

ありがとうございました

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

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

#4

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

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(); とかしてみたけど、リンクできなかった。


あと、「ご教授(きょうじゅ)」は「ご教示(きょうじ)」では ?
VTuber:
[香車]東上☆Aho(暎帆)☆海美
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

L'z

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

#5

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

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

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

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

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

#6

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

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.
VTuber:
[香車]東上☆Aho(暎帆)☆海美
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

閉鎖

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