ページ 11

ミサイルの煙について

Posted: 2012年5月27日(日) 18:53
by ヒューガ

コード:

int search_smoke(){
        for(int i=0;i<SMOKE_MAX;i++){
                if(smoke[i].f==0)
                        return i;
        }
        return -1;
}

void smoke_enter(){
	int i,t;
	for(t=0;t<MYMISSILE_MAX;t++){
		if(mymissile[t].f==1){
			if((i=search_smoke())!=-1){
				smoke[i].f=1;
				smoke[i].x=mymissile[t].x-15;
				smoke[i].y=mymissile[t].y-15;
			}
		}
	}
}

void smoke_calc(){
	for(int i=0;i<SMOKE_MAX;i++){
		if(smoke[i].f==1){
			smoke[i].y+=1;
			if(smoke[i].x<FIELD_MIN_X-60||smoke[i].x>FIELD_MAX_X+60||smoke[i].y<FIELD_MIN_Y-60||smoke[i].y>FIELD_MAX_Y+60){
				smoke[i].f=0;
			}
		}
	}
}

void effect_main(){
	smoke_enter();
	smoke_calc();
}
codeタグを直しました。かならずプレビューして確認してください。 by softya(ソフト屋)

このようにしてミサイルの煙を表現すると
ミサイルが通った瞬間に煙が出てくるのでかぶってしまいます。
そこで1,2フレーム遅らせて表示したいのですが
どうすればいいのでしょう?

Re: ミサイルの煙について

Posted: 2012年5月27日(日) 19:00
by softya(ソフト屋)
実際に表示するまでのカウントダウンのカウンタを構造体に追加して処理しては?
smoke.dcont=5;//5フレーム後に表示開始

Re: ミサイルの煙について

Posted: 2012年5月27日(日) 19:40
by ヒューガ
どこに組み込めばいいのでしょうか?

Re: ミサイルの煙について

Posted: 2012年5月27日(日) 20:26
by softya(ソフト屋)
ヒューガ さんが書きました:どこに組み込めばいいのでしょうか?
そこを自分で考えないと意味が無いんですが私の提案の意味は理解されていますか?
そして、何処がわからないのでしょうか?

Re: ミサイルの煙について

Posted: 2012年5月27日(日) 21:58
by ヒューガ
smoke.f=1;の作業を遅らせればいいのでしょうが
いったいどうやって?

Re: ミサイルの煙について

Posted: 2012年5月27日(日) 23:48
by softya(ソフト屋)
ヒューガ さんが書きました:smoke.f=1;の作業を遅らせればいいのでしょうが
いったいどうやって?


私はミサイル通過後数フレーム遅れて煙が表示されれば良いと考えましたが全体的な制御が分かっていないので間違っているかも知れませんし、ヒューガさんのイメージとも食い違っているかも知れません。
私の考えだとsmoke.dcont=5;としたら0になるまで移動と描画をスキップするだけで良いだけです(わざと大雑把に説明しています)。