某ゲームの6面のボス戦みたいなゲーム

説明

回転する@マークに当たらないように自機を操作し、中央にあるボス本体を撃って倒してください。中心部本体の数値はボスの体力を示しています。0にすればゲームクリアです。回転する@マークに当たると即ゲームオーバーです。自機はカーソルキーの上下左右で動かすことができます。ショットはスペースキーです。なお、本物の某ゲーム同様にボス中心部の上下は安全地帯になってます(他にも安全地帯は多数あります)。ただし、この隙間に入ってしまうとボスは倒せません。また、本物と同様に@マークはどんどん高速回転していきます(高速回転した挙げ句逆回転状態になるのも本物と同様です)。なお、無敵状態にしたい場合はif(scr(fx,fy)>31){の31を331などに変更してください。

[以下のJavaScriptプログラムをダウンロード]

// Boss 6
var fx=5,fy=11,rr=3000,ra=1;
var bx=0,by=-1,k=0;
var bossX=16,bossY=11,pow=5;
function key(n){ k=n; }
function main(){
  // move fighter
  if((k==28)*(fx>0)){fx=fx-1;}
  if((k==29)*(fx<27)){fx=fx+1;}
  if((k==30)*(fy>1)){fy=fy-1;}
  if((k==31)*(fy<21)){fy=fy+1;}
  if((k==32)*(by<0)){bx=fx;by=fy;}
  k=0;
  cls();
  lc(bossX,bossY);log(pow);
  // move leaf
  var r=3,tr=rr/100;
  while(r<16){
    var n=0;
    while(n<360){
      var x=bossX+sin8(tr+n+90)*r/250;
      var y=bossY+sin8(tr+n)*r/250;
      lc(x-1,y);log("@@@");
      n=n+60;
    }
    r=r+3;
  }
  // move beam
  if((bx<29)*(by>-1)){
    bx=bx+1;
    lc(bx,by);log("--");
    if(bx==28){ by=-1; }
  }
  if(scr(fx,fy)>31){
    lc(11,9);
    log("Game Over");
    lc(0,0);
    exit();
  }
  lc(fx,fy);log(">");
  if((bx==bossX)*(by==bossY)){
    pow=pow-1;
    by=-1;
    if(pow<1){
      lc(11,9);
      log("Game Clear!");
      lc(0,0);
      exit();
    }
  }
  rr=rr+10+ra;
  ra=ra+1;
  setTout(main,30);
}
setKprs(key);
main();

目次に戻る