自機と敵の当たり判定について

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

自機と敵の当たり判定について

#1

投稿記事 by Huzzy » 16年前

只今、龍神録様のコードを応用して横STGを
製作中です。

一難さってまた一難です;;

敵キャラと自機との当たり判定を加えたい
龍神録のソースにもあるout.cppを変更して
行おうと頑張っているのですが、中々
うまく回ってくれません;;

そして下記のクリックしても飛ばない
エラーメッセージ×11がどうにも消えません;;
(そのまま貼り付けで申し訳ありません)

判る方が居られましたら、ご教授ください。
お願いします。


1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_packet_iskeyframe が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_comment_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_info_init が関数 "int __cdecl TheoraDecode_InitializeStream(struct tagSTREAMDATASHREDTYPE2 *,int,int)" (?TheoraDecode_InitializeStream@@YAHPAUtagSTREAMDATASHREDTYPE2@@HH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_info_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_comment_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_clear が関数 "int __cdecl TheoraDecode_Terminate(int)" (?TheoraDecode_Terminate@@YAHH@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_header が関数 "int __cdecl TheoraDecode_ReadHeader(struct tagDECODE_THEORA *)" (?TheoraDecode_ReadHeader@@YAHPAUtagDECODE_THEORA@@@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_YUVout が関数 "unsigned long __stdcall TheoraDecode_Thread(void *)" (?TheoraDecode_Thread@@YGKPAX@Z) で参照されました。

1>DxUseCLib_d.lib(DxUseCLibOgg.obj) : error LNK2019: 未解決の外部シンボル _theora_decode_packetin が関数 "int __cdecl _TheoraDecode_IncToFrame(int,int)" (?_TheoraDecode_IncToFrame@@YAHHH@Z) で参照されました。

1>D:\c++\mikudius\miku3\Debug\miku3.exe : fatal error LNK1120: 外部参照 10 が未解決です。

Justy

Re:自機と敵の当たり判定について

#2

投稿記事 by Justy » 16年前

 こちらは参考になりますか?

C言語何でも質問掲示板
ttp://www.play21.jp/board/formz.cgi?action=res&resno=33334&page=&id=dixq&rln=33645

Huzzy

Re:自機と敵の当たり判定について

#3

投稿記事 by Huzzy » 16年前

Justyさんのおかげで、先ほどの
エラーがやっと消えてくれました。

これでやっと本来の当たり判定の質問に戻る事が出来す;;

改めて、下記の※1を※2の様に
変更してみたのですが、?の部分と
後どの部分を変更すれば良いのでしょうか?

※1 敵と自機ショットが当たったかどうかを判定する
int out_judge_cshot(int i,int s){
if(cshot.cnt>0){//ショットの軌道が1度でも計算されていたら
if(out_judge(cshot.x,cshot.y,enemy.x,enemy.y,
cshot_range[cshot.knd],enemy_range[enemy.knd],
cshot.spd,cshot.angle)){
return 1;
}
}
return 0;
}

※2 敵と自機の当たり判定
int out_judge_enemy_ch(int i,int s){
if(???????.cnt>0){
if(out_judge(ch.x,ch.y,enemy.x,enemy.y,
CRANGE,enemy_range[enemy.knd],???????.spd,????????.angle)){
return 1;
}
}
return 0;
}

如何なものでしょうか?

pooka

Re:自機と敵の当たり判定について

#4

投稿記事 by pooka » 16年前

自分はこんな感じでやりました。
おかしな部分があるかもしれないので、あくまでも参考程度に…
あとout_main関数にenemy_and_ch();を加えてください。
//敵と自機との処理
void enemy_and_ch(){
	int i;
	double r;
	if(ch.flag == 0){
		for(i=0;i<ENEMY_MAX;i++){
			if(enemy.flag == 1){
				r = (ch.x-enemy.x-FIELD_X)*(ch.x-enemy.x-FIELD_X)+(ch.y-enemy.y-FIELD_Y)*(ch.y-enemy.y-FIELD_Y);
				if((enemy_range[enemy.knd]+CRANGE)*(enemy_range[enemy.knd]+CRANGE)>r){
					enemy.flag = 0;
					enter_del_effect(i);
					if(ch.flag==0 && ch.mutekicnt==0){//ステータスが通常で、無敵じゃなかったら
						ch.flag    =2;    //1:喰らいボム受付中 2:死んで浮き上がり中
						ch.cnt    =0;
						se_flag[6]=1;
						return;
					}
				}
			}
		}
	}
}

閉鎖

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