extends SpriteChar; p=$pat_maze+5; //$Bomを初期化 $Bom = 0; mark=100; life=1; sx=x; sy=y; angle=270; majorAxis=100; flatRate=1/2; i=0; animationOn=0; vp=0; vx=2; while (y<$screenHeight+15) { if (ld== 1) vx=0; //ハシゴにつかまったらX方向速度を0にする 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.yx)) { //↑敵が右方向、自機が左 または 敵が左方向、自機が右 die(); //↑ならば、敵が死ぬ $Mychar.vy=-5; // 自機がはねあがる } else { $myChar.die(); //↑そうでなければ自機が死ぬ」 die(); } } for (e in $chars) { if (e [[is]] Bomb2 && [[crashTo]](e)) [[die]](); } if (vx<0) f=1; else f=0; angle+=3; if(x<15 || x>$screenWidth-15) d=-d; if(rnd(1000)==0 && animationOn==0) { vp=1; animationOn=1; } if(p==$pat_maze+6 && vp==1) { vp=-1; appear(new Enemy(x,y,$pat_maze+5)); } else if(p==$pat_maze+5 && vp==-1) { vp=0; animationOn=0; } if(i%20==0) p=p+vp; 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;} if (wY>= 1 && getkey(32)==1 && wY!=2) {vy=-7;jmp=1;} if (wY== 0 && ld==0) {if($map.getAt(x,y)==$pat_maze+1){vy+=0.4;}} {vy=-7;jmp=1;} //ハシゴの上でジャンプできるようにする if (jmp==1) {p=$pat_maze+5;} x+=vx;y+=vy; vx=0; update(); } function WallHit_chk(){ 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_Lift+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_Lift+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_Lift+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_Lift+0){if(wY==0) wY=1;if(wY==-1) wY=2;} }