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

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

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

#1

投稿記事 by num » 14年前

シューティングゲームをつくっている者です。
自機がショットを打てるようにしたのですが、ショットの数が100ぐらいになると

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

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

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

num

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

#2

投稿記事 by num » 14年前

自分でネットをあさってみました。

どうやら自機の弾を描画する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ライブラリで指定矩形部分を回転して描画する関数はあるのでしょうか

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

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

#3

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

方法としては、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 ) ;
こちらを使うのも手ですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

num

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

#4

投稿記事 by num » 14年前

ソフト屋さんありがとうございます。
DrawRectRotaGraph();を使ったら解決できました。

閉鎖

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