文字描画が消える

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

文字描画が消える

#1

投稿記事 by きずなん » 14年前

単純な質問なのですが、解決できないので質問させていただきます。

今、「時間とともに大きさが小さくなり、ある時間以降は大きさが変わらない」文字描写をしようとしています。
そこで、DrawFormatStringToHandle( x,y,Color, △, char)の△の部分に、CreatFontToHandle(NULL,○、太さ)とし、○の部分を加算していくようにしています。加算の条件を(if < A) → ○++;、(if >= A) →○=一定としています。すると、なぜか1つめの条件を抜けて2つめになった途端に文字が消えてしまいます。
文字が消えないようにするにはどうしたらいいでしょうか?

具体的なコードは以下のようになります。

コード:

//-----------------------------------------------
//                Effect.cpp
//-----------------------------------------------

void Effect_Damage(){
	if( Count2 < 50 ){
		Count2++;
		TEST1 = 70 - Count2;
	} else if ( Count2 >= 50) {
		TEST1 = 20;
	}
		DrawFormatStringToHandle(250,240,Red, CreateFontToHandle( NULL , TEST1 , 10 ) , "てすと");
}

コード:

//-----------------------------------------------
//                main.cpp
//-----------------------------------------------
	while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
			Effect_Damage();
					if ( Test_Calc( Flag_menu ) == 1 ){break;}
	}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 文字描画が消える

#2

投稿記事 by softya(ソフト屋) » 14年前

少なくとも毎回CreateFontToHandle()しっぱなしでDeleteFontToHandle()していないのは非常にマズイです。自動的にフォントハンドルは解放されません。
DXライブラリのフォントの管理を軽く調べてみましたが最大40個までみたいです。これだと確実にオーバーしていますのでここを直してみてください。

[補足]DXライブラリのどのハンドルもそうですが勝手には解放されません。まず、ハンドルをしっかり管理することを心がけて下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

きずなん

Re: 文字描画が消える

#3

投稿記事 by きずなん » 14年前

やはりですか・・・
ありがとうございました。

きずなん

Re: 文字描画が消える

#4

投稿記事 by きずなん » 14年前

すいません、解決を忘れていました;;

閉鎖

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