攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/06(Thu) 21:42
No.8834
|
|
|
|
|
ボスに追加装備(?)のようなものをつけて、それが2つとも 死ねば攻撃パターンが変化する、というのをやってみたのですが 実行されたりされなかったりで困っています;
装備のプログラム function atariHantei() { for (t in $chars) { if ( t is tama && crashTo(t) ) { life=life-1; if(life==0) { $boss=$boss+1; die(); } t.die(); } } }
これでboss変数が+されますよねこれが2つあるので どちらも死んだら2になるハズです。
ボスのプログラム if($boss<2)攻撃1
if($boss==2)攻撃2 boss変数が2になるまで攻撃1、2になったら攻撃2。
自分では上に書いたとおりであってると思うのですが・・・ どこかおかしいでしょうか?
|
Re: 攻撃パターン変化
投稿者 : N@N(actkyo145129.adsl.ppp.infoweb.ne.jp)
- 2005/10/06(Thu) 23:59
No.8835
|
|
|
|
$bossの初期化は行っていますか? ボスの出現時に$boss=0;を実行しておかないと、$bossの値が増えつづけていってしまいます。
または、ボスのオブジェクト名が$bossではないですか? 最初にbossを生成すると、そのオブジェクトを示すコードが$bossに入ります。 その変数で計算を実行してしまうと、動作がおかしくなります。
|
Re: 攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/07(Fri) 16:59
No.8838
|
|
|
|
初期化はされてなかったので初期化したら解決・・・ と思ったんですけどやっぱり動いてくれません; 一応ボスとその装備のプログラムをそのまま置きます・・・
ボス↓
extends SpriteChar; $boss=0; a=0; function atariHantei() { for (t in $chars) { if ( t is tama && crashTo(t) ) { life=life-1; if(life==0) {$mplayer.play($se_bomb,0,200); $score=$score+2000; die();$projectManager.loadPage($page_stage2); } t.die(); } } } life=600; while(y<160){ drawSprite(x,y-30,$pat_aa+14,0,2); y++; atariHantei(); update(); }
ang=20;
while(1){ drawSprite(x,y-30,$pat_aa+14,0,2); i++; ang++; y+=vy; y=y+sin(2*ang); if(y<0 || y>$screenHeight-0) vy=-vy; if(i==20 && $boss==0){app=appear(new etama2(x,y-40,$pat_bb+2));app.vy=4.5;} if(i==40 && $boss==0){app=appear(new etama2(x-40,y-40,$pat_bb+2));app.vy=4.5; app=appear(new etama2(x+40,y-40,$pat_bb+2));app.vy=4.5;i=0;} if(i==20 && $boss==1){app=appear(new etama2(x,y-40,$pat_bb+2));app.vy=4.5;} if(i==40 && $boss==1){app=appear(new etama2(x-40,y-40,$pat_bb+2));app.vy=4.5; app=appear(new etama2(x+40,y-40,$pat_bb+2));app.vy=4.5;i=0;} if(i==20 && $boss==2){app=appear(new etama(x-30,y-60,$pat_bb+1)); app=appear(new etama(x+30,y-60,$pat_bb+1)); app=appear(new etama(x+35,y-80,$pat_bb+1)); app=appear(new etama(x-35,y-80,$pat_bb+1));i=0; } atariHantei(); update(); }
装備↓ extends SpriteChar; zOrder=1; function atariHantei() { for (t in $chars) { if ( t is tama && crashTo(t) ) { life=life-1; if(life==0) {$mplayer.play($se_bomb,0,80); $score=$score+500;$boss=$boss+1; die(); } t.die(); } } } life=15; if (screenOut()>60)die(); while(y<160){ y++; atariHantei(); update(); }
ang=20;
while(1){ i++; ang++; ang++; ang++; y+=vy; y=y+sin(3*ang); if(y<0 || y>$screenHeight-0) vy=-vy; if(i==45){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==90){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==135){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==180){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==215){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==260){ app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=0.5; app=appear(new etama2(x,y+80,$pat_bb+2));app.vy=4.5;app.vx=-0.5;} if(i==360){appear(new etama(x,y-40,$pat_bb+1));} if(i==370){appear(new etama(x,y-40,$pat_bb+1));} if(i==380){appear(new etama(x,y-40,$pat_bb+1));} if(i==390){appear(new etama(x,y-40,$pat_bb+1));} if(i==400){appear(new etama(x,y-40,$pat_bb+1));i=-90;} atariHantei(); update(); }
|
Re: 攻撃パターン変化
投稿者 : x.x(pd34f58.tkyoac00.ap.so-net.ne.jp)
- 2005/10/07(Fri) 18:19
No.8839
|
|
|
|
おそらくtamaが装備に同時に当たり、life=0になったときに$boss=$boss+1が2回カウントされているのではないかと思います。
これでどうでしょうか?
装備↓ //追加したところ function onDie(){ $boss=$boss+1; $mplayer.play($se_bomb,0,80); $score=$score+500; }
function atariHantei() { for (t in $chars) { if ( t is tama && crashTo(t) ) { life=life-1; if(life==0) { die(); } t.die(); } } }
|
Re: 攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/08(Sat) 08:46
No.8841
|
|
|
|
動いてくれません・・・プログラムを添付しておきます。 どうかよろしくお願いします;
|
Re: 攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/08(Sat) 08:47
No.8842
|
|
|
|
Re: 攻撃パターン変化
投稿者 : xsb007(YahooBB221044056135.bbtec.net)
- 2005/10/08(Sat) 10:41
No.8843
|
|
|
|
b2の途中にある $boss=0; のせいで $boss が途中でリセットされたしまったのが原因です。$boss=0;はlifeに含まれているので、あらためてやる必要はありません。
|
Re: 攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/08(Sat) 17:32
No.8844
|
|
|
|
消してみたのですができたりできなかったりしてしまいます。 バグではないと思うのですが・・・
|
Re: 攻撃パターン変化
投稿者 : N@N(actkyo073155.adsl.ppp.infoweb.ne.jp)
- 2005/10/08(Sat) 18:54
No.8845
|
|
|
|
8845.zip
drawTextを使って変数を追いかけてみました。
$bossには問題はなく、原因はiでした。iが21以上の時に$bossが2になってしまうと、以後iが増えつづけてしまいます。 iが40になったら0に戻す部分を付け加えることで解決しました。
|
Re: 攻撃パターン変化
投稿者 : taba(YahooBB219051012048.bbtec.net)
- 2005/10/08(Sat) 23:39
No.8847
|
|
|
|
おお!できました!これでやっと次に移れそうです! 本当に助かりました。ありがとうございました。
|
|