////////////////////////////////////////////////// //ロケット弾 =Weapon(no,weapon/rocket/rocket_,x,y,64, 64, 0, 0, 0, 10, 32, 12,32, 0, 0, 11);//ロケット弾 //ランチャーWeapon(no,weapon/rocket/launcher_,x,y,64, 64, 0, 0, 0, 0, 16, 16, 0, 0, 7, 10);//ランチャー //噴射 =Weapon(no,weapon/rocket/jet_,x,y,64, 64, 0, 0, 0, 0, 16, 16, 8, 0, 7, 12);//噴射 //爆発 =Weapon(no,weapon/rocket/bomb_,x,y,64, 64, 0, 0, 0, 0, 16, 16, 8, 0, 7, 13);//爆発 ////////////////////////////////////////////////// //定数・変数 var rocketKind=10; var showRL=false; ////////////////////////////////////////////////// //初期化 Init_ShowRL(); function Init_ShowRL(){ switch(devmode){ case 1:showRL=true;break; default:showRL=false;break; } if(showRL){ } } //画像読み込み var bmp_r = new Array(26); for(i=0;i"); if(showRL){ document.writeln("
attack
"); } } //残り弾数表示 for(i=0;i<2;i++){ document.writeln(""); document.getElementById("rocket_tama_"+i).style.top=4; document.getElementById("rocket_tama_"+i).style.left=300; } var jetsu=30; var jets=new Array(jetsu);//JETを作る for(i=0;i"); if(showRL){ document.writeln("
attack
"); } } ////////////////////////////////////////////////// //メイン function RocketMain() { try{ /* //プレイヤーアクションのループ for(i=0;i5){ id_l.style.left =256-32*5; } else{ id_l.style.left =256-32*buki[no].loaded// } } else{ id_l.style.left =350; } if(buki[no2].kind==rocketKind){ //右側 if(buki[no2].loaded>5){ id_r.style.left =512-160+32*5; } else{ id_r.style.left =(gamensize_x-256)-160+32*buki[no2].loaded } } else{ id_r.style.left =350; } } function Move_Bitmap_Hantei_Rocket(obj,target){//ビットマップ移動 target.style.left=obj.at_x/scale-came_x; target.style.top=obj.at_y/scale-came_y; target.style.width=obj.at_w/scale; target.style.height=obj.at_h/scale; target.innerHTML="x"+obj.x + ":y" + obj.y + ":atx" + obj.at_x + ":aty" + obj.at_y + ":atw" + obj.at_w + ":ath" + obj.at_h; } function Move_Bitmap_Hantei_Effect_Rocket(obj,target){//ビットマップ移動 target.style.left=obj.at_x/scale-came_x; target.style.top=obj.at_y/scale-came_y; target.style.width=obj.at_w/scale; target.style.height=obj.at_h/scale; target.innerHTML=obj.no+"x"+obj.x + ":y" + obj.y + ":atx" + obj.at_x + ":aty" + obj.at_y + ":atw" + obj.at_w + ":ath" + obj.at_h; } function Tama_Life_Rocket(tama){ if(tama.stan==0)return; switch(tama.kind){ case 11: try{ if(tama.time%2==1){ Effect_Fire_Rocket(tama,tama.x+16,tama.y+16,tama.muki,-64,jets,12,0,0);//噴射発生 } }catch(e){} break; case 12://噴射 if(tama.time==0){tama.bm_n="0";tama.at_w=0;tama.at_h=0;tama.size_w=16;tama.size_h=16;}//画像変更 if(tama.time>=1 && tama.time<=2){tama.bm_n="1";tama.x-=1;tama.y-=1;tama.size_w+=8;tama.size_h+=8;}//画像変更 if(tama.time>=3 && tama.time<=4){tama.bm_n="2";tama.x-=1;tama.y-=1;tama.size_w+=12;tama.size_h+=12;}//画像変更 if(tama.time>=5){tama.posi=99;}// break; case 13://爆発 if(tama.time==0){tama.src="rocket/bomb_";tama.imp=2;tama.pre_bm=-1;tama.bm_n="0";tama.at_p=20;tama.size_w=32;tama.size_h=32;}//画像変更 if(tama.time>=1 && tama.time<=4){tama.imp=2;tama.bm_n="2";tama.x-=16;tama.y-=16;tama.at_x-=16;tama.at_y-=16;tama.at_w+=32;tama.at_h+=32;tama.at_p=20;tama.size_w=tama.at_w;tama.size_h=tama.at_h;}//画像変更 if(tama.time>=5 && tama.time<=7){tama.imp=2;tama.bm_n="1";tama.x-=16;tama.y-=16;tama.at_x-=16;tama.at_y-=16;tama.at_w+=32;tama.at_h+=32;tama.at_p=10;tama.size_w=tama.at_w;tama.size_h=tama.at_h;}//画像変更 if(tama.time>=8){tama.posi=99;}// break; case 14://爆風 if(tama.time==0){tama.src="rocket/bomb_";tama.imp=2;tama.pre_bm=-1;tama.bm_n="0";tama.size_w=0;tama.size_h=0;tama.at_p=0;}//画像変更 // if(tama.time>=1 && tama.time<=7){tama.imp=2;tama.bm_n="1";tama.x-=16;tama.y-=16;tama.at_x-=16;tama.at_y-=16;tama.at_w+=32;tama.at_h+=32;tama.at_p=0;}//画像変更 if(tama.time>=1 && tama.time<=7){tama.imp=2;tama.bm_n="1";tama.x-=32;tama.y-=64;tama.at_x-=32;tama.at_y-=64;tama.at_w+=64;tama.at_h+=96;tama.at_p=0;}//画像変更 if(tama.time>=8){tama.posi=99;}// break; } tama.time++; } /////////////////////////////////////////////////////////////////////// function Panel_Check_Rocket(obj,buki,panel){//保持武器パネルの処理 switch(buki[obj.weapon].kind){ case rocketKind:case 15: panel.bm_n="rocket/panel_launcher.png"; break; } } /////////////////////////////////////////////////////////////////////// //ビットマップの変更、移動 function Change_Bitmap_Rocket(obj,id){//キャラの絵の変更 if(obj.pre_bm != obj.bm_n ) {id.src = obj.src+""+obj.bm_n+".png";} /* { id.src = "rocket/"+obj.bm_n+".png"; obj.pre_bm= obj.bm_n; } */ } function Change_Bitmap_Rocket_Player(obj,id){//キャラの絵の変更 if(isNaN(obj.bm_n)){ if(obj.pre_bm!=obj.bm_n) { id.src = "rocket/"+obj.bm_n+".png"; obj.pre_bm=obj.bm_n; } } } function Move_Bitmap_Tama_Rocket(obj,id){//ビットマップ移動 // id.src = "rocket/rocket_"+obj.bm_n+".png"; id.style.left=obj.x/scale-came_x; id.style.top=obj.y/scale-came_y; id.style.width=obj.size_w/scale; id.style.height=obj.size_h/scale; //alert(id.style.left + "::::"+id.style.top + "::" + obj.size_w + "::" + obj.size_h); } function Tama_Recycle_Rocket(tama){ if(tama.posi==99) { tama.imp=0; tama.posi=0; tama.stan=0; tama.time=0; tama.x=-600; tama.y=-100; tama.x=-600; tama.y=-100; tama.size_w=0; tama.size_h=0; tama.mxp=0; tama.myp=0; tama.at_x=400+0*tama.no; tama.at_y=400+30*tama.no; tama.at_w=50; tama.at_h=10; }//画面外へ } function Tama_Move_Rocket(obj){//弾の移動 自然の影響無視 obj.mx=obj.mxp; obj.my=obj.myp; obj.myp=obj.my; //obj.at_x=16;obj.at_y=64; obj.x+=obj.mx; obj.y+=obj.my; } function Effect_Move_Rocket(obj){//弾の移動 自然の影響無視 obj.mx=obj.mxp; obj.my=obj.myp; obj.myp=obj.my; obj.x+=obj.mx; obj.y+=obj.my; } function Move_Tama_Hantei_Rocket(obj){//当たり判定、攻撃判定の移動 if(obj.stan==0){return;} switch(obj.muki){ case 0://右に飛んでいるとき obj.at_x=obj.x;//+obj.at_x;//obj.x+obj.at_x-obj.mx+64; obj.at_w=obj.mx; obj.at_y=obj.y+24;//obj.y+obj.at_y; obj.at_h=Math.abs(obj.my)+16; break; case 1://左 obj.at_x=obj.x;//+obj.at_x; obj.at_w=Math.abs(obj.mx); obj.at_y=obj.y+24;//obj.y+obj.at_y; obj.at_h=Math.abs(obj.my)+16; break; case 2://上 obj.at_x=obj.x+24; obj.at_w=Math.abs(obj.mx)+16; obj.at_y=obj.y; obj.at_h=Math.abs(obj.my); break; case 3://下 obj.at_x=obj.x+24; obj.at_w=Math.abs(obj.mx)+16; obj.at_y=obj.y+64-obj.my; obj.at_h=Math.abs(obj.my); break; } } function Hit_Check_Wall_Rocket(tama){//壁と弾のヒット判定 if(tama.x+tama.at_w>=field_r && tama.mxp>0)//右壁 { tama.x=field_r-tama.size_w;tama.imp=0;tama.posi=99;tama.mxp=0;tama.myp=0; //爆風の発生+爆発の発生 Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,14,1,20); Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,13,1,20); tama.bm_n=3; } if(tama.x<=field_l && tama.mxp<0)//左壁 { tama.x=field_l;tama.imp=0;tama.mxp=0;tama.posi=99;tama.myp=0; //爆風の発生+爆発の発生 Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,14,1,20); Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,13,1,20); tama.bm_n=103; } if(tama.y>=field_d && tama.myp>0)//下壁 { tama.y=field_d-tama.size_h;tama.imp=0;tama.posi=99;tama.mxp=0;tama.myp=0; tama.at_y=tama.y; //alert("sita"+field_d +"::"+ tama.size_h + "::" + tama.y); //爆風の発生+爆発の発生 Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-0,tama.muki,0,jets,14,1,20); Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-0,tama.muki,0,jets,13,1,20); tama.bm_n=303; } if(tama.y<=field_u && tama.myp<0)//上壁 { tama.y=field_u;tama.imp=0;tama.posi=99;tama.mxp=0;tama.myp=0; //爆風の発生+爆発の発生 Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,14,1,20); Effect_Fire_Rocket(tama,tama.x-32,tama.at_y-64,tama.muki,0,jets,13,1,20); tama.bm_n=203; } } function Hit_Check_Player_Rocket(player,tama){//プレイヤーと弾の間でのヒット判定 if(tama.imp>=1 && tama.at_x-player.core_x-tama.at_w && tama.at_y-player.core_y-tama.at_h) { switch(tama.kind){ case 11:// //alert("::"+player.x+"::"+player.core_x+"::"+player.core_wid+":::"+tama.at_w); //alert("::"+player.y+"::"+player.core_y+"::"+player.core_hei+":::"+tama.at_h); switch(tama.muki){ case 0://右に飛ぶ、左から当たる tama.x=player.core_x-tama.at_w;//弾をプレイヤーの左に移動 player.mxp-=10; //alert(tama.x+"::"+player.x+"::"+player.core_x+"::"+player.core_wid+":::"+tama.at_w); break; case 1://左に飛ぶ、右から当たる tama.x=player.core_x+player.core_wid;//弾をプレイヤーの右に移動 player.mxp+=10; //alert(tama.x+"::"+player.x+"::"+player.core_x+"::"+player.core_wid+":::"+tama.at_w); break; case 3://下に飛ぶ、上から当たる tama.y=player.core_y+player.core_hei;//弾をプレイヤーの上に移動 player.myp+=10; //alert(tama.muki+"::"+tama.y+"::"+player.y+"::"+player.core_y+"::"+player.core_hei+":::"+tama.at_h); break; case 2://上に飛ぶ、下から当たる tama.y=player.core_y-tama.at_h;//弾をプレイヤーの下に移動 player.myp-=10; //alert(tama.muki+"::"+tama.y+"::"+player.y+"::"+player.core_y+"::"+player.core_hei+":::"+tama.at_h); break; } tama.imp=0; tama.bm_n=2+tama.muki*100;//ヒット画像に変える tama.mxp=0;tama.myp=0;//ベクトルの停止 tama.posi=99;//弾の終了 Kurai_Killer_Rocket(player,tama,weapons); //Kurai_Effect(player,tama,weapons,10); player.myp-=20;//プレイヤーはふっとび //爆風の発生 Effect_Fire_Rocket(tama,tama.x,tama.y,tama.muki,-5,jets,14,1,30); //爆発の発生 Effect_Fire_Rocket(tama,tama.x,tama.y,tama.muki,-5,jets,13,1,30); break; case 13://爆発 Kurai_Effect(player,tama,weapons); break; case 14://爆風 Kurai_Force_Rocket(player,tama,weapons,8); //player.myp-=30;//プレイヤーはふっとび break; default:break; } } } function Hit_Check_TamaTama(tama,rocket){ if(tama.imp>0 && rocket.imp>0 && tama.at_x-rocket.at_x-tama.at_w && tama.at_y-rocket.at_y-tama.at_h) { //tama.bm_n=2+tama.muki*100;//ヒット画像に変える switch(tama.muki){ case 0:tama.bm_n=3;break; case 1:tama.bm_n=103;break; case 2:tama.bm_n=203;break; case 3:tama.bm_n=303;break; } tama.imp=0;//攻撃判定消す tama.mxp=0;tama.myp=0;//ベクトルの停止 tama.posi=99;//弾の終了 rocket.imp=0;//攻撃判定消す rocket.bm_n=2+rocket.muki*100;//ヒット画像に変える rocket.mxp=0;rocket.myp=0;//ベクトルの停止 rocket.posi=99;//弾の終了 //爆風の発生 Effect_Fire_Rocket(rocket,rocket.x,rocket.y,rocket.muki,-5,jets,14,1,30); //爆発の発生 Effect_Fire_Rocket(rocket,rocket.x,rocket.y,rocket.muki,-5,jets,13,1,30); } } function Hit_Check_RocketsRockets(rocketA,rocketB){ try{ if(rocketA.imp>0 && rocketB.imp>0 && rocketA.at_x-rocketB.at_x-rocketA.at_w && rocketA.at_y-rocketB.at_y-rocketA.at_h) { rocketA.imp=0;//攻撃判定消す rocketA.bm_n=2+rocketA.muki*100;//ヒット画像に変える rocketA.mxp=0;rocketA.myp=0;//ベクトルの停止 rocketA.posi=99;//弾の終了 //爆風の発生 Effect_Fire_Rocket(rocketA,rocketA.x,rocketA.y,rocketA.muki,-5,jets,14,1,30); //爆発の発生 Effect_Fire_Rocket(rocketA,rocketA.x,rocketA.y,rocketA.muki,-5,jets,13,1,30); rocketB.imp=0;//攻撃判定消す rocketB.bm_n=2+rocketB.muki*100;//ヒット画像に変える rocketB.mxp=0;rocketB.myp=0;//ベクトルの停止 rocketB.posi=99;//弾の終了 //爆風の発生 Effect_Fire_Rocket(rocketB,rocketB.x,rocketB.y,rocketB.muki,-5,jets,14,1,30); //爆発の発生 Effect_Fire_Rocket(rocketB,rocketB.x,rocketB.y,rocketB.muki,-5,jets,13,1,30); } }catch(e){ // alert(e); } } /////////////////////////////////////////////////////////////////////// //くらい function Kurai_Killer_Rocket(obj,atobj,buki){//攻撃をくらったとき var no=obj.weapon; obj.life-=atobj.at_p; //alert(atobj.at_p); obj.imp=0;atobj.imp=0; obj.posi=96;//操作不能にする obj.atpat=0; obj.time=0; if(obj.muki==atobj.muki){obj.movepat=11;obj.bm_n=11+obj.muki*1000;}//後ろから攻撃された時 else{obj.movepat=10;obj.bm_n=10+obj.muki*1000;}//前から攻撃された時 if(no>=2){//武器を落とす buki[no].posi=13; buki[no].muki=Math.abs(atobj.muki-1); buki[no].x=obj.x+obj.size_w/2; buki[no].y=obj.y+0; if(buki[no].loaded<=0 && buki[no].posi<98) {buki[no].posi=14;} } obj.weapon=obj.no;//素手になる buki[obj.weapon].loaded=-10; } function Kurai_Effect(obj,atobj,buki){//攻撃をくらったとき var no=obj.weapon; obj.life-=atobj.at_p; //alert(atobj.at_p); obj.imp=0; atobj.imp-=1; obj.posi=96;//操作不能にする obj.atpat=0; obj.time=0; if(atobj.at_x+atobj.at_w/2=2){//武器を落とす buki[no].posi=13; buki[no].muki=Math.abs(atobj.muki-1); buki[no].x=obj.x+obj.size_w/2; buki[no].y=obj.y+0; if(buki[no].loaded<=0 && buki[no].posi<98) {buki[no].posi=14;} } obj.weapon=obj.no;//素手になる buki[obj.weapon].loaded=-10; } function Kurai_Force_Rocket(obj,atobj,buki,pow){//別の力の影響(爆風、自然物、重力 var no=obj.weapon; atobj.imp-=1; if(atobj.at_x+atobj.at_w/2=1 && obj.time<=3){Move_Set_Rocket(obj,0,0,100,120,452);}//ショットする if(obj.time==1){Move_Set_Rocket(obj,0,0,100,120,"jo_rocket_"+obj.muki); var tama_id=Tama_Fire_Rocket(obj,obj.x+314-obj.muki*564,obj.at_y-1,obj.muki,64,rockets); if(tama_id>-1){ buki[no].loaded-=1; obj.mxp-=Math.ceil(rockets[tama_id].mxp/5);obj.myp-=Math.ceil(rockets[tama_id].myp/5); } }//弾丸の発射 if(obj.time==16){obj.posi=59;obj.atpat=0;}//次の射撃体制へ // if(obj.time==2){obj.posi=59;obj.atpat=0;}//次の射撃体制へ break; case 10002:Move_Set_Rocket(obj,30,48,80,80,"jo_rocket_cl" + obj.muki);//しゃがみgun攻撃 if(buki[obj.weapon].loaded==0){obj.posi=59;obj.atpat=19;obj.time=0;break;}//武器投げ Attack_Set(obj,-10,30,0,0,0); // Attack_Set(obj,-10,73,0,0,0); if(obj.time==1){Move_Set_Rocket(obj,30,48,80,80,"jo_rocket_cl" + obj.muki); var tama_id=Tama_Fire_Rocket(obj,obj.x+314-obj.muki*564,obj.at_y-1,obj.muki,64,rockets); if(tama_id>-1){ buki[no].loaded-=1; obj.mxp-=Math.ceil(rockets[tama_id].mxp/5);obj.myp-=Math.ceil(rockets[tama_id].myp/5); } } // if(obj.time>=2 && obj.time<=3){Move_Set_Rocket(obj,30,48,80,80,482);}//ショットする if(obj.time==16){obj.posi=59;obj.atpat=0;}//次の射撃体制へ // if(obj.time==6){obj.posi=59;obj.atpat=0;}//次の射撃体制へ break; case 10003:Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_2");//真上gun攻撃 Attack_Set(obj,-100+70*obj.muki,0,0,0,0); if(obj.time==1){Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_2"); var tama_id=Tama_Fire_Rocket(obj,obj.at_x-1,obj.at_y-300,2,64,rockets); if(tama_id>-1){ buki[no].loaded-=1; obj.mxp-=Math.ceil(rockets[tama_id].mxp/5);obj.myp-=Math.ceil(rockets[tama_id].myp/5); } } // if(obj.time>=2 && obj.time<=3){Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_");}//ショットする if(obj.time==16){obj.posi=59;obj.atpat=0;}//次の射撃体制へ // if(obj.time==3){obj.posi=59;obj.atpat=0;}//次の射撃体制へ break; case 10004:Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_3");//真下gun攻撃 Attack_Set(obj,-100+70*obj.muki,120,0,0,0); if(obj.time==1){Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_3"); var tama_id=Tama_Fire_Rocket(obj,obj.at_x-1,obj.at_y+300,3,64,rockets); if(tama_id>-1){ buki[no].loaded-=1; obj.mxp-=Math.ceil(rockets[tama_id].mxp/5);obj.myp-=Math.ceil(rockets[tama_id].myp/5); } } // if(obj.time>=2 && obj.time<=3){Move_Set_Rocket(obj,30,0,60,120,"jo_rocket_");}//ショットする if(obj.time==16){obj.posi=59;obj.atpat=0;}//次の射撃体制へ // if(obj.time==4){obj.posi=59;obj.atpat=0;}//次の射撃体制へ break; } }