ダンジョンゲームで、銃で敵をうっててきを消したいのですが、消し方がわかりません。
どなたか、教えてください。
敵を消す
-
管理人
Re:敵を消す
作りかけているゲームで、何か詰まったときに人に聞くのは難しいですよね。
こちらはコードも解らないし、かといって、提示されるには長すぎるしと・・。
ダンジョンゲームだろうと、マリオのファイアーだろうと、やってることはシューティングと同じです。
シューティングと同じ要領でやってみましょう。
簡単にコードを紹介します。
難しく考えないで下さい。
ゲームを作るときのコツは、しっかり関数で仕事を分けてやることです。
それでは頑張ってください。
こちらはコードも解らないし、かといって、提示されるには長すぎるしと・・。
ダンジョンゲームだろうと、マリオのファイアーだろうと、やってることはシューティングと同じです。
シューティングと同じ要領でやってみましょう。
簡単にコードを紹介します。
typedef struct{
int flag,cnt;
double x,y;
}bullet_t;
で、弾の情報を持った構造体を用意します。
フラグ、出現してからのカウンタ、x,y座標
は最低必要でしょう。
bullet_t bullet[100];
で、100個まで画面に一度に表示できる弾を準備します。
今の瞬間、(x,y)=(100,200)の場所から弾を発射する必要があるとしましょう。その時、
for(i=0;i<100;i++){//一度に表示できる弾の数だけ
if(bullt.flag==0){//使える弾があれば
bullet.flag=1;//フラグをたてて
bullet.cnt=0;//フラグをたてて
bullet.x=100;//フラグをたてて
bullet.y=200;//フラグをたてて
break;
}
}
これで弾情報の登録は終わりです。
他の関数で、常にこれを計算しましょう。
例えば、横に直線で飛んでいくなら、xを増やしていけばいいでしょう。
for(i=0;i<100;i++){//一度に表示できる弾の数だけ
if(bullt.flag==1){//表示中の弾があれば
bullet.cnt++;//出現してからのカウンタを増加
bullet.x+=1;//x座標計算
break;
}
}
この時、一緒に「画面外にいったら削除(bullet.flag=0;)」と
「○○カウンタ以上になったら削除」も
計算してやりましょう。
後は描画部で、
for(i=0;i<100;i++){//一度に表示できる弾の数だけ
if(bullt.flag==1){//表示中の弾があれば
DrawGraph( bullet[i].x, bullet[i].y, .................);
}
}
描画してやればOKです。
こうして、
「登録」「計算」「描画」を3つにわけてやりましょう。
ベクターとかご存知でしたらそちら使ったほうが効率的かもしれません。難しく考えないで下さい。
ゲームを作るときのコツは、しっかり関数で仕事を分けてやることです。
それでは頑張ってください。
-
prg
Re:敵を消す
ありがとうございます。
実はまだ、銃のシステムは完成していないんです。ダンジョンとモンスターはできました。
それで、また質問なのですが、モンスターと接触したときにダメージを受けるようにしたいのですが、
kyorifという差の絶対値を取る関数を作って、8ピクセル分重なったらダメージとし、new_atari_flagと
old_atari_flagをたて、old_atari_flag==0,new_atari_flag==1ならダメージ、old_atari_flag=new_atari_flag
とし、old_atari_flag==1,new_atari_flag==1ならば、ループを抜けるとしたい(ダメージなし)としたのですが、なぜかだぁーーとHPがへってしまいます。どうすればいいのでしょうか?
実はまだ、銃のシステムは完成していないんです。ダンジョンとモンスターはできました。
それで、また質問なのですが、モンスターと接触したときにダメージを受けるようにしたいのですが、
kyorifという差の絶対値を取る関数を作って、8ピクセル分重なったらダメージとし、new_atari_flagと
old_atari_flagをたて、old_atari_flag==0,new_atari_flag==1ならダメージ、old_atari_flag=new_atari_flag
とし、old_atari_flag==1,new_atari_flag==1ならば、ループを抜けるとしたい(ダメージなし)としたのですが、なぜかだぁーーとHPがへってしまいます。どうすればいいのでしょうか?
-
管理人
Re:敵を消す
prgさんも夜更かしなのやら早起きなのやら^^;
私は徹夜で研究室篭ってます(_ _|||)
さて、モンスターにあたったら、モンスターが死ぬのなら、無敵時間を作らなくても、モンスターがいないのにHPが減り続けるのでしょうか?
それではモンスターがいることになっているのでは・・。
ちょっとその辺はコードを見ないと解りません。
・・・と言っても、コードを読むの慣れて無いので、長いと見てもわからないかもしれませんが^^;
もしよかったら添付してもらえないでしょうか?
公開に差し支えるようなら直で私宛にメールで送ってもらってもいいですし。
もし自力で、とお思いでしたら、
もう少し詳細に教えてもらえると答えやすいです。
私は徹夜で研究室篭ってます(_ _|||)
さて、モンスターにあたったら、モンスターが死ぬのなら、無敵時間を作らなくても、モンスターがいないのにHPが減り続けるのでしょうか?
それではモンスターがいることになっているのでは・・。
ちょっとその辺はコードを見ないと解りません。
・・・と言っても、コードを読むの慣れて無いので、長いと見てもわからないかもしれませんが^^;
もしよかったら添付してもらえないでしょうか?
公開に差し支えるようなら直で私宛にメールで送ってもらってもいいですし。
もし自力で、とお思いでしたら、
もう少し詳細に教えてもらえると答えやすいです。