ページ 11

文字描画が消える

Posted: 2012年1月28日(土) 12:29
by きずなん
単純な質問なのですが、解決できないので質問させていただきます。

今、「時間とともに大きさが小さくなり、ある時間以降は大きさが変わらない」文字描写をしようとしています。
そこで、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;}
	}

Re: 文字描画が消える

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

[補足]DXライブラリのどのハンドルもそうですが勝手には解放されません。まず、ハンドルをしっかり管理することを心がけて下さい。

Re: 文字描画が消える

Posted: 2012年1月28日(土) 14:06
by きずなん
やはりですか・・・
ありがとうございました。

Re: 文字描画が消える

Posted: 2012年1月28日(土) 15:55
by きずなん
すいません、解決を忘れていました;;