ダンジョンゲームで、銃で敵をうっててきを消したいのですが、消し方がわかりません。
どなたか、教えてください。
敵を消す
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つにわけてやりましょう。 ベクターとかご存知でしたらそちら使ったほうが効率的かもしれません。
難しく考えないで下さい。
ゲームを作るときのコツは、しっかり関数で仕事を分けてやることです。
それでは頑張ってください。
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が減り続けるのでしょうか?
それではモンスターがいることになっているのでは・・。
ちょっとその辺はコードを見ないと解りません。
・・・と言っても、コードを読むの慣れて無いので、長いと見てもわからないかもしれませんが^^;
もしよかったら添付してもらえないでしょうか?
公開に差し支えるようなら直で私宛にメールで送ってもらってもいいですし。
もし自力で、とお思いでしたら、
もう少し詳細に教えてもらえると答えやすいです。