ページ 11

25563:グラフィックの数が許容量を越えました終了します というエラーについて

Posted: 2011年7月10日(日) 05:58
by num
シューティングゲームをつくっている者です。
自機がショットを打てるようにしたのですが、ショットの数が100ぐらいになると

25563:グラフィックの数が許容量を越えました終了します

と出力され、強制的に終了してしまいます。
弾は100ぐらいしか出ていないのにどうしてこのようなエラーが出るのでしょうか。
また、どのように対処すればよいのでしょうか。

ご教授お願いいたします。

Re: 25563:グラフィックの数が許容量を越えました終了します というエラーについて

Posted: 2011年7月10日(日) 06:21
by num
自分でネットをあさってみました。

どうやら自機の弾を描画するvoid Shot::draw()で↓のようにしていました

コード:

void Shot::draw( int image ){

	if( !m_isLive )return;

	DrawRotaGraph(
		(int)m_x+80 , (int)m_y ,
		1.0 , m_angle ,
		DerivationGraph( m_type*32,0,32,32,image ),
		true,false);

}
codeタグが間違っていたので修正。 プレビューで確認してから投稿するようにお願いします。 by softya(ソフト屋)

毎フレーム呼ばれる関数内でDerivationGraph()を呼んでいるのが問題なのかと思います

しかし、DXライブラリで指定矩形部分を回転して描画する関数はあるのでしょうか

Re: 25563:グラフィックの数が許容量を越えました終了します というエラーについて

Posted: 2011年7月10日(日) 09:41
by softya(ソフト屋)
方法としては、LoadDivGraphで初めから別のイメージに分割しておくことです。
サイズ可変じゃないので可能かと思います。

[追記]
隠し関数で、RectとRotaを併せ持った関数がありました、
extern int DrawRectRotaGraph( int X, int Y, int SrcX, int SrcY, int Width, int Height, double ExtRate, double Angle, int GraphHandle, int TransFlag, int TurnFlag ) ;
こちらを使うのも手ですね。

Re: 25563:グラフィックの数が許容量を越えました終了します というエラーについて

Posted: 2011年7月10日(日) 18:18
by num
ソフト屋さんありがとうございます。
DrawRectRotaGraph();を使ったら解決できました。