ダメージ
投稿者 : けい(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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
ちょっとわからないので つけくわえたものをはってください
|
|