[戻る] 最新記事| 前後の記事|

- 以下は、記事NO. 2950 に関する 返信フォーム です -
ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 00:55 No.2950
 


剣で敵をたおすことはできるのですが
ダメージ制にしたいんですが
シューティングの場合はわかっているのですが
剣で切る場合はどのようにすればいいのですか?
誰かわかりやすく教えてくださいーーー


Re: ダメージ 投稿者 : hoge-(203-165-20-190.home.ne.jp)
- 2003/03/26(Wed) 11:38 No.2957
 
シューティングの場合も剣で切る場合も全く同じです。
とりあえずシューティングの時にやったことをそのまま書いてみましょう。
もしうまくいかなかったら、そのうまくいかなかったファイルを添付してください。


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 11:59 No.2960
 
extends SpriteChar;
function atariHantei() {
  for (t in $chars) {
   if ( t is ken_atari && crashTo(t) ) {
     // もし弾 t にぶつかったら
     life=life-1;  //体力をへらす
     t.die();      //当たった弾をけす
     if (life<1) die();   //もし体力がなくなったら死ぬ
   }
  }
}
life=5; // 敵の体力
vx=2;
while (1) {
  if ($map.getAt(x+vx,y)==$pat_myimg+5 || $map.getAt(x+vx,y+32)!=$pat_myimg+5 ) {
    updateEx(30);
    vx=-vx;
  }
  x+=vx;
  if (vx<0) f=0; else f=1;
  for (t in $chars){
    if (t is ken_atari && crashTo(t)){
      die();
    }
  }
  update();
}


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 12:01 No.2961
 
これでいいのですか?


Re: ダメージ 投稿者 : hoge-(ppp02.kake.info.waseda.ac.jp)
- 2003/03/26(Wed) 13:49 No.2962
 
これはシューティングのプログラムのようです。
剣で切るプログラムのほうに、ライフをつけるプログラムを追加してみましょう。

上のプログラムのこのへんが参考になるはずです

function atariHantei() {
  for (t in $chars) {
   if ( t is ken_atari && crashTo(t) ) {
     // もし弾 t にぶつかったら
     life=life-1;  //体力をへらす
     t.die();      //当たった弾をけす
     if (life<1) die();   //もし体力がなくなったら死ぬ
   }
  }
}
life=5; // 敵の体力life=5; // 敵の体力

もしうまくいかない場合は、剣を使うゲームのほうの敵プログラムを添付してください。


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 18:54 No.2975
 
このとうりにやっても
できませんでした


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 18:57 No.2976
 
extends SpriteChar;
function atariHantei() {
  for (t in $chars) {
   if ( t is ken_atari && crashTo(t) ) {
     // もし弾 t にぶつかったら
     life=life-1;  //体力をへらす
     t.die();      //当たった弾をけす
     if (life<1) die();   //もし体力がなくなったら死ぬ
   }
  }
}

life=10; // 敵の体力
vx=2;
while (1) {
  if ($map.getAt(x+vx,y)==$pat_myimg+5 || $map.getAt(x+vx,y+32)!=$pat_myimg+5 ) {
    updateEx(30);
    vx=-vx;
  }
  x+=vx;
  if (vx<0) f=0; else f=1;
  for (t in $chars){
    if (t is ken_atari && crashTo(t)){
      die();
    }
  }
  update();
}


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 18:58 No.2977
 
とりあえずはっときました


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/26(Wed) 19:36 No.2979
 
Download:2979.txt 2979.txt これも


Re: ダメージ 投稿者 : N.(218.26.244.43.ap.livedoor.jp)
- 2003/03/26(Wed) 23:46 No.2983
 
ゲームのデータが入っているフォルダごと圧縮して添付して下さい。.cmmlだけでは解決方法はわかりません。


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/27(Thu) 00:21 No.2988
 
Download:2988.lzh 2988.lzh これです


Re: ダメージ 投稿者 : hoge-(203-165-20-190.home.ne.jp)
- 2003/03/27(Thu) 00:29 No.2989
 

atariHantei メソッドは定義しただけでは動作しません。チュートリアルのプログラムでは、途中で
 atariHantei(); 
という部分があって、ここでatariHanteiメソッドを呼び出しています。
(http://tonyu.kake.info.waseda.ac.jp/html/HID00000029.htm 参考)

さて、 No.2976に貼っていただいたプログラムを見ると atariHantei の中身と、プログラムの下のほうにある、

  for (t in $chars){
    if (t is ken_atari && crashTo(t)){
      die();  // (敵が死ぬ)
    }
  }
の部分が大変似通っています。この部分と、atariHanteiの違いは、if分のなかみです。
atariHantei のほうでは、次のような処理をやっています。これによって、lifeが1へり、life が 0だったら死にます。
     life=life-1;  //体力をへらす
     t.die();      //当たった弾をけす
     if (life<1) die();   //もし体力がなくなったら死ぬ

単にdie() とやっただけでは剣が当たると必ず死んでしまいます。

対処法としては
*atariHanteiメソッド全体 (function atariHantei() { ..  } )  の部分をけす
* atariHanteiメソッドに書いてあった、体力を減らし、敵が体力0のときに死ぬ処理を

  for (t in $chars){
    if (t is ken_atari && crashTo(t)){
       //  ここ
    }
  }

に書き加える。


Re: ダメージ 投稿者 : けい(p295c57.aicint01.ap.so-net.ne.jp)
- 2003/03/27(Thu) 11:47 No.2997
 
ちょっとわからないので
つけくわえたものをはってください


おなまえ
Eメール
タイトル
メッセージ
推薦記事
添付File
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色