Justyさんに聞きたいことがあるのですが

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

Justyさんに聞きたいことがあるのですが

#1

投稿記事 by kai » 15年前

ちょっと前に、
ボス時に、東方みたいなボスカウントによって
段々にワッカが小さくなるサンプルを作成してくれて
それを改造している龍神録(60章)に実装してみたのですが、
なぜか、左上の1ピクセル分のみ色を識別して、
それをワッカとして表示しているバグが発生しているのですが、
どうしたらうまくいくのか助けてください・・
// 円を作る頂点の数(多いほど円に近づくが処理が重くなる)
	#define VERTEX_MAX 30
	// 円にいくつ元のテクスチャを貼るか
	#define TEXTURE_MAX 3

	if( CheckStateKey( KEY_INPUT_Z ) == 1 )
	{
		// 0初期化...
		memset( vrt, 0, sizeof( VERTEX ) * VERTEX_MAX * 2 );
		for(int i = 0; i < VERTEX_MAX * 2; i++ )
		{
			vrt[ i ].u = ( ( i / 2 ) % ( VERTEX_MAX / TEXTURE_MAX )) * ( 1.0f / ( VERTEX_MAX  / TEXTURE_MAX - 1 ));
			vrt[ i ].v = (float)( i % 2 );
			vrt[ i ].a = vrt[ i ].r = vrt[ i ].g = vrt[ i ].b = 255;
		}
	}
	if( spell_eff.flag == 1 )
	{
		if( spell_eff.end_time  > spell_eff.cnt + 1 )
		{	
			spell_eff.ang += PI / 30.f;

			if( spell_eff.cnt < 70 )
			{
				if( spell_eff.cnt < 40 )
				{
					spell_eff.ang -= PI / 40.f / ( spell_eff.cnt + 10 );
					spell_eff.r += spell_eff.start_r / 40.f;
				}
			}
			spell_eff.r  -= (spell_eff.start_r - spell_eff.end_r) / spell_eff.end_time;
			spell_eff.r2 -= (spell_eff.start_r - spell_eff.end_r) / spell_eff.end_time; 
		}
		else
		{
			spell_eff.flag = 0;
		}
		spell_eff.cnt++;
		DrawPolygonBase( vrt ,VERTEX_MAX * 2, DX_PRIMTYPE_TRIANGLESTRIP, img_boss_effect[25], TRUE );
	}

	DrawGraph(130,20,img_boss_effect[25],TRUE);
	DrawFormatString(130,0,GetColor(255,255,255),"endtime : %d", spell_eff.end_time - spell_eff.cnt );
	DrawFormatString(130,30,GetColor(255,255,255),"cnt : %d", spell_eff.cnt );
	DrawFormatString(130,60,GetColor(255,255,255),"ang : %d", spell_eff.ang );
	DrawFormatString(130,90,GetColor(255,255,255),"r : %d", spell_eff.r );
	DrawFormatString(130,120,GetColor(255,255,255),"r2 : %d", spell_eff.r2 );
	DrawFormatString(130,150,GetColor(255,255,255),"flag : %d", spell_eff.flag );

yu

Re:Justyさんに聞きたいことがあるのですが

#2

投稿記事 by yu » 15年前

あ~・・・多分このソースコードは自分が書きましたw
(書き方、変数名の付け方、見難さから考えて)
かなり前に書いたやつだと思います。
ですので、自分でも何をやっているのか・・・w
処理を簡易的に教えたかったので、このままじゃ少し扱いにくいと思いますよ


とりあえず動くようにしたいのなら
static VERTEX vrt[ VERTEX_MAX * 2 ];	// 外側の頂点と内側の頂点が必要だから *2 してある
毎回 vrt がメモリに確保されているので初期化がされず、おかしいことになっているんだと思います
(あまり static は好きじゃないですけどね;)

kai

Re:Justyさんに聞きたいことがあるのですが

#3

投稿記事 by kai » 15年前

ああああああorz
申し訳ありません><
色々な方々から教えて貰っていたので
多分Justyさんだったかな・・?と思ったのですが
yuさんでしたか。ホントすみません。。。
そしてありがとうございます。無事、動きました!

Justy

Re:Justyさんに聞きたいことがあるのですが

#4

投稿記事 by Justy » 15年前

 良かったです。
 書いた覚えがなく思い出せなくて困ってましたw

閉鎖

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