|
今、爆弾の、武器を作っています。爆弾を爆発させることはできました。でも、その爆風を食らう判定を入れているんですが、なぜか敵が死にません。元のオブジェ破壊スプリクトを入れてやってみましたが、できませんでした。 敵のプログラムは extends SpriteChar; function atariHantei() { for (t in $chars) { if ( t is Bomb2 && crashTo(t) ) { die(); } } } mark=100; life=1; sx=x; sy=y; angle=270; majorAxis=100; flatRate=1/2; i=0; animationOn=0; vp=0; vx=2; vx=2; while (y<$screenHeight+15) { if (crashTo($Bomb2)) die(); x+=vx; if (x<0) vx=2; if (x>$screenWidth) vx=-2; if (rnd(50)==0) vx=-vx; if (crashTo($myChar)) { //↑敵と自機がぶつかったときに if ((vx>0 && $myChar.y<y) || (vx<0 && $myChar.x>x)) { //↑敵が右方向、自機が左 または 敵が左方向、自機が右 appear(new Enemy(x, y, $pat_maze+4)); die(); //↑ならば、敵が死ぬ $Mychar.vy=-5; // 自機がはねあがる } else { $myChar.die(); //↑そうでなければ自機が死ぬ」 die(); } }
if (vx<0) f=1; else f=0; WallHit_chk();
if (wX!= 0) vx=0; if (wY==-1) vy=1; //上のブロックに当たったら反発する
if (wY>= 1) {vy=0;jmp=0;y=trunc(y/32)*32+16;} i++; angle+=3; if(x<15 || x>$screenWidth-15) d=-d; if(rnd(600)==0 && animationOn==0) { vp=1; animationOn=1; } if(p==$pat_maze+5 && vp==1) { vp=-1; appear(new Enemy(x,y,$pat_maze+4)); } else if(p==$pat_maze+4 && vp==-1) { vp=0; animationOn=0; } if(i%20==0) p=p+vp; if ($map.getAt(x,y+16 )==$pat_Maze+1) y+=3; update(); } function WallHit_chk(){ //左の壁に接している :wX=-1 右の壁に接している :wX= 1 //左右とも壁に接してない:wX= 0 //上の壁に接している :wY=-1 下の壁に接している :wY= 1 //上下とも壁に接してない:wY= 0 上下の壁に同時に接している:wY= 2 wX=0;wY=0; //左 if($map.getAt(x-8+vx,y-12)==$pat_maze+0){wX=-1;} if($map.getAt(x-8+vx,y+12)==$pat_maze+0){wX=-1;} //右 if($map.getAt(x+8+vx,y-12)==$pat_maze+0){if(wX==0) wX=1;} if($map.getAt(x+8+vx,y+12)==$pat_maze+0){if(wX==0) wX=1;} //上 if($map.getAt(x-8,y-17 )==$pat_maze+0){wY=-1;} if($map.getAt(x+8,y-17 )==$pat_maze+0){vy=1;wY=-1;} //下 if($map.getAt(x-8,y+16+vy)==$pat_maze+0){if(wY==0) wY=1;if(wY==-1) wY=2;} if($map.getAt(x+8,y+16+vy)==$pat_maze+0){if(wY==0) wY=1;if(wY==-1) wY=2;} } で、爆弾と爆風のソースは Bom extends SpriteChar; p=$pat_Sample6+25; while(1) { if ($map.getAt(x,y+10 )==$pat_Maze+1) y+=3; for (t in $chars) { if ( t is Enemy && crashTo(t) ) { appear(new Bomb2(x, y, $pat_Sample6+4)); die(); } } update(); } Bomb2
extends SpriteChar; wait(5); p=p+1; wait(5); p=p+1; wait(5); p=p+1; wait(5); です。
|