この記事では、JS Mini-GamesのCosmic Fighterソースコードについて説明し、参照のためにあなたと共有されています。具体的な紹介は次のとおりです。
1。ゲームの紹介:
これは、合計6つのレベルを持つ垂直のフライングシューティングゲームです。
2。ゲームの要件:
1.戦闘機は弾丸を発射でき、弾丸は小道具を取得することでアップグレードできます。
2。戦闘機は爆弾に配置でき、小道具の数を増やすことができます。
3.戦闘機は攻撃する力を蓄積する可能性があります。
4.チャネルには3種類のチャネルがあります。つまり、弾丸をアップグレードし、爆弾の数を増やし、戦闘機の数を増やします。
5.各レベルには異なる音楽があります。
6.戦闘機は撃downされ、戦場に入り、保護された状態になります。
7。敵の航空機AI設計。
以下の図に示すように、ゲームは実行されます。
完全なサンプルコードをダウンロードするには、ここをクリックしてください。
3。JavaScriptソースコードパーツ:
/** cosmic Fighter*著者:fdipzone*日付:2013-02-12* ver:1.0*/windo.onload = function(){var gameimg = ['images/fighter.png' '、' images/fighter_p.png '、' images/fighter_s.png '、' images/fighter_s.png ' 'Images/fighter_s.png'、 'images/shot.png'、 'images/destroy.png'、 'images/destroy.png' '、' images/Enemy.png '、' images/bullet.png ''、 'images/gift.png'、 'images/bomb.png'、 'images/' boss1.png ']; var callback = function(){var GamePlane = $( 'GamePlane'); Fighter.init(); Fighter.bgmove(ゲームプレイン); } img_preload(gameimg、callback);};/** fighter class*/var fighter =(var hiscore = 10000; //最高スコアvarスコア= 0; //現在var is_lock = 1はvar is_clear = 0ですvar keypriority = {}; // The conflict key priority var gamekey = [37,38,39,40,83,65]; // The game's key var scoretag = [0,20,30,40,50,60,500]; // The score of different enemy aircraft var level = 1; // The level var power = 1; // The power of the fighter bullet var cheatcode = []; // Record cheat input var failures = 0; {'armor':2500、 'left':136、 'top':-169、 'step':30}、{'armor':3000、 'left':136、 'top':-169、 'step':30}、]; // var敵の敵data = []; //ボスvar curbossが現在var curboss = null; // var map = [// level 1 {'ms50':[[3、680、1、-50、10]、[3、680、1、-50、290、10]]、 'ms2500':[[3、800、2、200、450、-10]、 'ms8000':[1、10、12、23、190、10]、 'ms9500':[[3、800、2、200、450、-10]]、 'ms8000':[[1、10、11、-23、100、10]]、 'ms9500':[[3、800、2、2、2、200、450、-10]]、 'ms8000': -50、10]]、 'ms11500':[[3、800、2、200、450、450、-10]]、 'ms13500':[[3、800、2、100、-50、10]]、 'ms15500':[[3、800、3、-50、30、10]]、 'MS25000': 'MS20000':[[3、800、3、-50、90、10]]、 'MS25000':[[1、10、4、150、-50、280、10]]、 'MS25000':[[1、10、4、150、-50、280、10]、 'MS25000 400、-10]、[1、10、4、100、400、-10]]、 'MS30000':[[3、800、5、692、90、-10]、[3、800、5、692、280、-10]、 'MS35000':[[3、680、1、70、70、10、1、680、1、680、 'MS38000':[[1、10、11、-23、10、10、10]]、 'MS40000':[[1、10、4、4、100、400、-10]、[1、10、4、300、-50、10]]、 'MS42500': 'MS45500':[[3、800、2、150、450、-10]]、 'MS49500':[[3、800、2、50、50、10]]、 'MS51500':[[3、800、2、150、450、-10]、 'MS49500':[3、800、2、50、-50、10]、 'MS51500':[[3、800、2、150、450、-10]]、 'MS55500':[[3、800、3、-50、90、10]、[3、800、3、-50、280、10]]、 'MS60000': 10]、 'MS65000':[[1、10、4、100、400、-10]、[1、10、4、300、-50、10]]、 'MS68000':[[3、800、5、692、110、-10]、[3、800、5、692、260、-10] 'MS76000':[]}、//レベル2 {'MS50':[[3、680、1、-50、10、10]、[3、680、1、-50、290、10]]、 'MS2500':[[3、680、1、-50、70、10]、[3、680、1、-50、220、10、10]、 10、12、-23、190、10]]、 'MS5500':[[3、800、2、2、100、 -50、10]]、 'MS7500':[[[3、800、2、200、450、-10]]、 'MS8000':[[1、10、11、-23、100、100、10]、MS9500 ': 'MS11500':[[3、800、2、200、450、-10]]、 'MS13500':[[3、800、2、100、-50、10]]、 'MS15500':[[3、800、3、-50、30、10]、[3、800、3、3、3、-50、340、340、34,000 ': 10]、[3、800、3、-50、280、10]、 'MS35000':[[1、10、4、250、400、-10]]、 'MS30000':[[3、800、5、692、90、-10]、MS35000 ': -10]、 'ms35000':[[3、680、1、-50、70、10]、[3、680、1、-50、220、10]]、 'MS45500':[[1、10、11、 -23、10]]]]、 'MS45500': 'MS42500':[[3、680、1、-50、70、10]、 'MS45500':[[3、680、1、-50、70、10]]、「MS45500」:[[3、800、2、50、-50、10]、 'MS47500': 'ms49500':[[3、800、2、50、-50、10]]、 'ms51500':[[3、800、2、150、450、450、-10]]、 'ms55500':[[3、800、3、-50、90、10]、 'ms60000':[3、800、3、30、10] 10、4、100、400、-10]、[1、10、4、300、-50、10]]、 'ms68000':[[3、800、5、692、110、-10]、[3、800、5、692、260、-10]]、 'ms71000': 3 {'MS50':[[3、680、1、-50、10、10]、[3、680、1、-50、10]、 'MS2500':[[3、680、1、-50、220、10]]、[3、680、1、-50、220、10]、 'MS3500 'ms5500':[[3、800、2、100、-50、10]]、 'ms7500':[[3、800、2、200、450、-10]]、 'ms8000':[[1、10、11、-23、100、100]]、 'ms9500':[[3、800、2、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、100、 450、-10]]、 'MS13500':[[3、800、2、100、-50、10]]、 'MS15500':[[3、800、3、-50、30、10]]、 'MS20000':[[3、800、3、-50、90、10]]、 'MS25000 250、400、-10]、[1、10、4、100、400、-10]]、 'MS30000':[[3、800、5、692、90、-10]、[3、800、5、692、280、-10]]、 'MS35000':[[3、680、1、-50、70、10、1、680] 10]、 'MS38000':[[1、10、11、-23、10、10、10]]、 'MS40000':[[1、10、4、100、400、-10]、[1、10、4、300、-50、10]]、 'MS42500': 450、-10]]、 'MS49500':[[3、800、2、50、-50、10]]、 'MS51500':[[3、800、2、150、450、-10]]、 'MS55500':[[3、800、2、150、450、 -10]]、MS5500 ': 'MS55500':[[3、800、2、50、-50、10]]、 'MS51500':[[3、800、2、150、450、450、-10]]、 'MS55500':[[3、800、3、-50、90、10]、[3、800、3、280、280、10、 'MS60000': 30、10]、 'MS65000':[[1、10、4、100、400、-10]、[1、10、4、300、-50、10]]、 'MS68000':[[3、800、5、692、110、-10]、[3、800、5、692、260、-10]、 'MS71000': 10]、 'MS76000':[]}、//レベル4 {'MS50':[[3、680、1、-50、10、10]、[3、680、1、-50、290、10]]、 'MS2500': 'ms3500':[[1、10、12、-23、190、10]]、 'ms5500':[[3、800、2、100、 -50、10]]、 'ms7500':[[3、800、2、2、200、450、-10]]、 'ms13500': 2、100、-50、10]]、 'MS15500':[[3、800、2、100、100、-50、10]、 'MS15500':[[3、800、3、-50、30、10]]、 'MS11500':[[3、800、3、-50、340、10]]、MS20000 ': 800、3、-50、280、10]]、「MS35000」:[[1、10、4、150、-50、10]、[1、10、4、4、250、400、-10]、 'MS30000':[[3、800、5、692、90、-10]、 'MS35000': 'MS35000':[[3、680、1、-50、70、10]、[3、680、1、-50、220、10]]、 'MS45500':[[1、10、11、-23、10、10]、 'MS40000': 'MS42500':[[3、680、1、-50、70、10]、 'MS45500':[[3、680、1、-50、220、10]]、 'MS45500':[[3、800、2、50、-50、10]、 'MS47500':[3、800、2、150、450、-150、150、450、 'MS49500':[[3、800、2、50、-50、10]]、 'MS51500':[[3、800、2、150、450、450、-10]]、 'MS55500':[[3、800、3、-50、90、10]、 'MS60000' 800、3、-50、30、10]]、 'MS65000':[[1、10、4、100、400、-10]、[1、10、4、300、-50、10]、 'MS68000':[[3、800、5、692、110、-10]、[3、800、5、692、260、-10]、 'MS71000 -23、220、10]]、 'MS76000':[]}、//レベル5 {'MS50':[[3、680、1、-50、10]、[3、680、1、-50、290、10]]、 'MS2500': 'ms3500':[[1、10、12、-23、190、10]]、 'ms5500':[[3、800、2、100、-50、10]]、 'ms7500':[[3、800、2、2、200、450、-10]]、 'ms8000': 100、-50、10]]、 'ms11500':[[3、800、2、200、450、450、-10]、 'ms13500':[[3、800、2、100、-50、10]、 'ms15500':[[3、800、3、-50、30、10]、[3、800、3、 -50、340、10]、 'MS200 800、3、-50、90、10]、 'MS25000':[[1、10、4、150、-50、10]、[1、10、4、250、400、-10]、[1、10、4、100、400、-10]]、 'MS30000': -10]、 'MS35000':[[3、680、1、-50、70、10]、[3、680、1、-50、220、10]]、 'MS38000':[[1、10、11、-23、10]]]]、 'MS40000':[[1、10、4、400、 -10、10、10、10、10、10、100、100、400、-10、100、100、400、 -10、10、100、100、400、 -10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、10、3 'MS42500':[[3、680、1、-50、70、10]、[3、680、1、-50、220、10]]、 'MS45500':[[3、800、2、50、-50、10]]、 'MS47500':[[3、800、2、150、450、 -1050]、MS49500 ': 50、-50、10]]、 'ms51500':[[3、800、2、150、450、-10]、 'ms55500':[[3、800、3、-50、90、10]、[3、800、3、-50、280、10]、 'ms60000':[3、800、3、30、30、10]、 340、10]]、 'MS65000':[[1、10、4、100、400、400、-10]、[1、10、4、300、-50、10]]、 'MS68000':[[3、800、5、692、110、-10]、[3、800、5、692、260] 10]、 'MS76000':[]}、//レベル6 {'MS50':[[3、680、1、-50、10、10]、[3、680、1、-50、290、10]]、 'MS7500':[[3、680、1、-50、70、10]、 'ms3500':[[1、10、12、-23、190、10]]、 'ms5500':[[3、800、2、100、-50、10]]、 'ms7500':[[3、800、2、2、200、450、-10]]、 'ms8000': 100、-50、10]]、 'ms11500':[[3、800、2、200、450、450、-10]、 'ms13500':[[3、800、2、100、-50、10]、 'ms15500':[[3、800、3、-50、30、10]]、 'MS20000': 'ms15500':[[3、800、3、-50、30、10]]、 'ms20000':[[3、800、3、-50、90、10]]、 'ms15500':[[3、800、3、-50、30、10]]、 'ms20000': 10]]、 'MS35000':[[1、10、4、150、-50、10]、[1、10、4、250、400、-10]、[1、10、4、100、400、-10]、 'MS30000':[[3、800、5、692、90、-10]、MS35000 ': 10]、[3、680、1、-50、220、10]、 'MS42500':[[3、800、2、150、450、-10]]、 'MS49500':[[3、800、2、150、450、-10]]、 'MS49500': 800、2、150、450、-10]]、 'MS49500':[[3、800、2、150、450、-10]]、 'MS49500':[[3、800、2、150、450、-10]、 'MS49500':[[3、800、2、150、450、 -1050、MS4900 ': 150、450、-10]]、 'MS49500':[[3、800、2、50、50、10]、 'MS51500':[[3、800、2、150、450、-10]]、 'MS55500':[[3、800、3、-50、90、10]、 'MS60000':[[3、800、3、-50、30、10]]、 'MS65000':[[1、10、4、300、-50、10]、[1、10、4、300、-50、10]]、 'MS68000':[[3、800、5、692、110、-10]、 'ms71000':[[1、10、13、-23、220、10]]、 'ms76000':[]}]; //初期化init = function(){ft = $( 'ファイター'); reset(); key_event(); } //ゲームstart = function(){is_clear = 0; is_protect = 0; disp(ft.id、 'show'); reset_fighter(); reset_pile();プロセス(); bgsound(level、true); bgchange(level); fighter_init(); } //イベントkey_event = function(){document.onkeydown = function(e){var e = e || window.event; var curkey = e.keycode || e。どちら|| e.charcode; if(is_start == 0){if(cheatcode.length> 12){cheatcode.shift(); } cheatcode.push(curkey); //ユーザーによるチートコード入力を記録} if(is_start == 1 && in_array(curkey、gamekey)){if(ackey [curkey.tostring()] == 0 || typeof(ackey.tostring()] == '未解決' || in_array(curkey、[83,65]) Ackey [curkey.tostring()] = 1; //キーダウンスイッチを保存(カーキー){ケース37:ケース39:keypriority.left = curkey; //左右折;ケース38:ケース40:keypriority.top = curkey; //アップダウンブレイク; }} else {return false; }} if(curkey == 13 || is_start == 1 && is_lock == 0){//ゲームはstartまたはkey = 13 switch(curkey){case 13:// enter if(is_start == 0){is_start = 1; disp( 'op'、 'hide'); msg_show(); setimeout(function(){msg_hide(); cheat(); start();}、1500); } 壊す;ケース83://射撃ショット();壊す;ケース65://爆弾爆弾();壊す; }}} document.onkeyup = function(e){var e = e || window.event; var curkey = e.keycode || e。どちら|| e.charcode; if(is_start == 1 && in_array(curkey、gamekey)){ackey [curkey.tostring()] = 0; //キーダウンif(curkey == 83){//電源攻撃のリリースif(is_pile == 1){pile_shot(); } reset_pile(); }}}} // loop = function(){var movestep = 5;によって実行されるアクション//ステップサイズの移動var et = setInterval(function(){if(is_start == 0 || is_lock == 1){clearinterval(et);} //移動if(ackey ['37 '] == 1 &&(ackey ['39'] == 0 || keypriority.left = = 37){ if(ft、 'left')<movestep){ft、 'left'、0); if(ft、 'top')<movestep){ft、 'top'、0); 400-(getposition(ft、 'left') + 50)<setposition(ft、 'left'、350); || keypriority.top == 40){if(640-(ft、 'top')<movestep){ft、 'top'、590) }} //充電攻撃if(ackey ['83 '] == 1){if(pilenum <1000){pipeline = pipelineum + 20; } else if(is_pile == 0){is_pile = 1; if(is_protect == 1){setClass(ft、 'fighter_s'); } else {setClass(ft、 'fighter_s'); }}}}}}}}}}}}}、20); } //戦闘機の射撃shot = function(){// bullet var bullet = document.createelement( 'div')を作成する; var offsetx; switch(power){ケース1:offsetx = 20;壊す;ケース2:offsetx = 15;壊す;ケース3:offsetx = 10;壊す;ケース4:offsetx = 4;壊す; } setClass(bullet、 'shot' + power); //弾丸セットポジションの初期位置(弾丸、 'トップ'、getposition(ft、 'top')-30)を設定します。 setposition(bullet、 'left'、getposition(ft、 'left') + offsetx); ft.parentnode.appendchild(bullet); //弾丸の動きを設定しますvar et = setInterval(function(){if(getposition(bullet、 'top')<= -30 || is_lock == 1){clearinterval(et); ft.parentnode.removechild(bullet); // lelease bulet} if(bullet、eminedata [i]){敵のdata [i]) (curboss!= null){//ボスのバトル(弾丸、curboss ['obj']){// hit the boss curboss [curboss ['armor']) 'top')-15); 30)} //撮影pile_shot = function(){var pilebullet = document.createelement( 'div'); SetClass(Pilebullet、 'Pileshot'); //弾丸セットポジションの初期位置(Pilebullet、 'Top'、getposition(ft、 'top')-30)を設定します。 setposition(pilebullet、 'left'、getposition(ft、 'left')); ft.parentnode.appendchild(pilebullet); var et = setInterval(function(){if(getposition(pilebullet、 'top')<= -85 || is_lock == 1){clearinterval(et); ft.parentnode.removechild(pilebullet); //弾丸をリリースします。 if(i]!= null){If(Pilebullet、EnemyData [i])){敵Data [i]) curboss [obj ']){// Boss Curboss [' armor '] -100; 30)} //爆弾bomb = function(){if(is_bombing == 0 && bombnum> 0){//爆発ではなく、爆弾カウントis_bombing = 1; BOMBNUM-; sethtml( 'bombnum'、bombnum); // 1 var ofacity = 100で減少します。 setopacity($( 'bomb')、ofacity); disp( 'bomb'、 'show'); //すべての敵の飛行機と敵の弾丸をクリアするis_clear = 1; // strike boss if(curboss!= null){curboss ['armor'] = parseint(curboss ['armor'])-300; } var step = 0; var et = setinterval(function(){//爆弾効果if(step <11){setbgposition($( 'bomb')、0、step*( - 280));} }} //ゲームプロセスプロセス= function(){var leveldata = map [level-1]、processed = 0、step = 10; var levelStep = 0; //各レベルのクリア0 = setInterval(function(){if(is_lock == 0){processed+= step; if(attrcount(lethdata)> levelStep){//このレベルは完了していない場合(levelData ['ms'+処理]){ leveldata [i] [msdata); }/*レベル要素の作成/* MSDATA:{num:発生数間隔:間隔:間隔:タイプ:タイプ:オリジナルトップ座標左:オリジナル左座標ステップ:移動距離}*/create = function(msdata){var num = msdata [0]、interval = msdata [1]、type = msdata [2]、top = msdata msdata [4]、step = msdata [5]; var et = setInterval(function(){if(num> 0){var enft = document.createelement( 'div'); setClass(enft、 'element' + type); enft.type = type; setposition(enft、 'top'、top); setposition(enft '、' left '、eenft); ft.parentnode.parentnode.parentnode.parentnode.parentnod EnemyData.Push(ENFT); } //要素モーショントラックルート= function(enft、type、step){var et = null; switch(type){case 1:// curve var count = 0; et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+math.abs(step)); setposition(enft、 'left'、getposition(enft ')、getposition(enft、' left ')+step); 'Top')>|壊す;ケース2:// Horizontal var Count = 0; Et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'left'、getposition(enft、 'left')+step); count <9?count ++:(count = 0、astate(enft、1,17,47));ステップ<0 ||壊す;ケース3://垂直VARカウント= 0; et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+step); count <9?count ++ :( count = 0、astate(enft、1,17,47)); ClearInterval(et);壊す;ケース4://左および右ループの動き攻撃var count = 0; Et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'left'、getposition(enft、 'left')+step); count <10?count ++:(count = 0、astate(enft、4,17,31)); && step <0){sept-1;壊す;ケース5:// var count = 0の背後からの攻撃。 et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+step); count <9?count ++:(count = 0、astate(enft、1,17、-17)); ClearInterval(et);壊す;ケース11://パワーギフトvar count = 0; et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+math.abs(step)); setposition(enft、 'left'、getposition(enft ')、getposition(enft、' left ')+step); 'Top')> 6) ClearInterval(et);壊す;ケース12://爆弾ギフトvarカウント= 0; et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+math.abs(step)); setposition(enft、 'left'、getposition(enft ')、getposition(enft、' left ')+step); 「トップ」> 6) ClearInterval(et);壊す;ケース13://戦闘機ギフトvar count = 0; et = setInterval(function(){if(node_exist(enft)){setposition(enft、 'top'、getposition(enft、 'top')+math.abs(step)); setposition(enft、 'left'、getposition(enft ')、getposition(enft、' left ')+step); 「トップ」> 6) ClearInterval(et);壊す; }} // Destroy Destroy = function(dobj){// dobj:破壊されたオブジェクトvar dest = document.createelement( 'div'); setclass(dest、 'Destroy'); setposition(dest、 'top'、getposition(dobj、 'top')); setposition(dest、 'left'、getposition(dobj、 'left')); ft.parentnode.appendchild(dest); if(dobj.id == 'Fighter'){//戦闘機はDisp(dobj.id、 'hide')にヒットしました。 Power = 1; bombnum = 3; fightnum--; sethtml( 'fighternum'、fightnum); sethtml( 'bombnum'、bombnum); is_lock = 1; } else {dobj.parentnode.removechild(dobj); } var step = 0; var et = setInterval(function(){if(step <11){setbgposition(dest、step*(-48)、0); step ++;} else {if(dobj.id == 'Fighter'){function(){if(fighternum> 0){levelContinue(); curboss [obj ']; } // Boss War Bosswar = function(){var boss = bossdata [level-1]; var bossft = document.createelement( 'div'); SetClass(Bossft、 'Boss' + level); Setposition(bossft、 'left'、boss ['left']); SetPosition(Bossft、 'Top'、Boss ['Top']); ft.parentnode.appendchild(bossft); curboss = {"armor":boss ['armor']、 "obj":bossft}; switch(level){ケース1://ボス1ケース2://ボス2ケース3://ボス3ケース4://ボス4ケース5://ボス5ケース6://ボス6 var step = -3; var count = 0; var et = setInterval(function(){if(getposition(bossft、 'top')<50){// boss Enter setposition(bossft、 'top'、getposition(bossft、 'top')+5);} else {if(curboss ['armor'] <= 0){// boss over clear interval(et); if(bossft、 'left')> 10){bossft、 'left'、getposition(bossft ')+step); }他の{count> = 35 && count {bossft、bossft、1、80、30)} count%100 == 0){bossft、3、60、92)壊す; }} / *攻撃 * obj敵航空機 *タイプ攻撃タイプ *左弾丸左左左上弾丸初期トップ * /攻撃= function(obj、type、left、top){if(is_lock == 1){return false; //ロックされている場合、撃たないでください} var oleft = getposition(obj、 'left')+left; var top = getposition(obj、 'top')+top; switch(type){ケース1://戦闘機での攻撃//弾丸と戦闘機の位置var oppoint = {x:oleft+7、y:otop+7}; var dpoint = {x:getposition(ft、 'left')+25、y:getposition(ft、 'top')+25}; var p = vector(opoint、dpoint、8); enftbullet( 'bullet'、oleft、top、p [0]、p [1]、35);壊す;ケース2://ストレート攻撃var num = 3; var st = setInterval(function(){if(num> 0){enftbullet( 'bullet'、oleft、top、0、8、35); num - ;} else {clearinterval(st);}}、150);壊す;ケース3://散布攻撃var num = 3; var st = setinterval(function(){if(num> 0){switch(num){case 1:enftbullet( 'sbullet'、oleft、top、0、8、35); case 2:enftbullet( 'sbullet'、oleft、topop、3、8、35); case 3:enftbullet( 8、35);壊す;ケース4://小散布攻撃var num = 3; var st = setInterval(function(){if(num> 0){switch(num){case 1:enftbullet( 'bullet'、olett、topop、0、8、35); case 2:enftbullet( 'bullet'、oleft、top、3、8、35); case 3:breck(fullet(bullet()); } num-;壊す; }} / * enft bullet *タイプ弾丸タイプ *オレフト、トップ弾丸の初期位置 *左、上部弾丸 * / enftbullet = function(type、oleft、ofe、left、top、speed){var bullet = document.createelement( 'div'); setclass(bullet、type); setposition(bullet、 'left'、oleft); setposition(bullet、 'top'、top); ft.parentnode.appendchild(bullet); var et = setInterval(function(){setposition(bullet、 'top'、getposition(bullet、 'top')+top); setposition(bulle、 'left'、getposition(bullet、 'left')+左); getposition(bullet ')> 6.| } // boss over boss = function(){obj = curboss ['obj']; obj.parentnode.removechild(obj);スコアアップ(6); //ボススコアvar dest = document.createelement( 'div'); setclass(dest、 'Destroyboss'); setposition(dest、 'top'、getposition(obj、 'top')); setposition(dest、 'left'、getposition(obj、 'left')); ft.parentnode.appendchild(dest); var step = 0; var et = setinterval(function(){if(step <21){setbgposition(dest、step*(-150)、0);} else if(step == 21){dest.parentnode.removechild(dest);} else if(step == 50){clearinterval(et);} step+ } //継続levelContinue = function(){reset_fighter(); disp(ft.id、 'show'); setProtect(); fighter_init(); } // pass level = function(){keypriority = {}; EnemyData = []; curboss = null;レベル++; bgsound( 'pass'、false); var processed = 0; var et = setInterval(function(){is_lock = 1; processed = processed + 15; if(getposition(ft、 'top')> -50){setposition(ft、 'top'、getposition(ft、 'top')-15);} if(processed> = 2500){clearinterval(et); bgchange(0); } // update scoreup = function(type){if(typeof(scoretag [type])!= 'undefined'){score = score + scoretag [type] * level; sethtml( 'score'、score); if(score> hiscore){hiscore = score; sethtml( 'hiscore'、hiscore); }}} // bullet upgrade powerup = function(){power = power+1> 4? 4:パワー+1; } //爆弾bombop = function(){bombnum ++; sethtml( 'bombnum'、bombnum); } //戦闘機増加戦闘機Up = function(){fighternum ++; sethtml( 'fighternum'、fighternum); } //保護ステータスsetProtect = function(){is_protect = 1; if(is_pile == 1){setclass(ft、 'fighter_sp'); } else {setClass(ft、 'fighter_p'); } settimeout(function(){is_protect = 0; if(is_pile == 1){setclass(ft、 'fighter_s');} else {setclass(ft、 'fighter');}}、3000)} //衝突処理衝撃fently = function(obj、&f(a ft) is_lock == 0){//衝突生成if(is_protect == 0){destroy(ft); ClearInterval(et); ft.ParentNode.RemoveChild(OBJ); }}} //すべてのクリアランスgameclear = function(){is_over = 1; disp( 'gameclear'、 'show'); sethtml( 'clearcon'、 'game clear' + '<br>' + 'スコア:' +スコア); bgsound( 'clear'、false); bgchange( 'clear'); setimeout(function(){bgsound(); init();}、16000); } //ゲームの終わりGameOver = function(){is_over = 1; disp( 'gameover'、 'show'); sethtml( 'overcon'、 'level:' + level + '<br>' + 'スコア:' +スコア); bgsound( 'over'、false); bgchange( 'over'); failtimes ++; settimeout(function(){if(failtimes == 3){alert( 'enter↑↑→←→ASAS、再びゲームを開始すると、驚く^_^');} bgsound();();}、8000); } //メッセージmsg_show = function(){sethtml( 'level'、 'level-' + level); disp( 'level'、 'show'); is_lock = 1; } //メッセージmsg_hide = function(){disp( 'level'、 'hide'); } // reset reset = function(){is_start = 0; is_bombing = 0; is_lock = 1; is_over = 0; IS_CLEAR = 0; is_protect = 0;レベル= 1; Power = 1; Ackey = {}; keypriority = {}; EnemyData = [];スコア= 0; fightenum = 3; bombnum = 3; sethtml( 'hiscore'、hiscore); sethtml( 'score'、score); sethtml( 'fighternum'、fightenum); sethtml( 'bombnum'、bombnum); reset_fighter(); reset_pile(); disp( 'op'、 'show'); disp( 'gameover'、 'hide'); disp( 'gameclear'、 'hide'); bgchange(0); } //ファイターポジションreset_fighter = function(){setPosition(ft、 'top'、640); Setposition(ft、 'left'、175); SetClass(ft、 'Fighter'); } // reset reset reset_pile = function(){is_pile = 0; Pilenum = 0; if(is_protect == 1){setClass(ft、 'fighter_p'); } else {setClass(ft、 'Fighter'); }} //ファイター初期化fighter_init = function(){var et = setInterval(){if(getPosition(ft、 'top')> 400){setposition(ft、 'top'、getposition(ft、 'top') - 12);} els {clearinterval( } //秘密のスキル30ライフチート= function(){if(cheatcode.join( '、')== '38,38,40,40,37,39,37,39,65,83,65,83,13'){fightenum = 30; sethtml( 'fighternum'、fightnum); } cheatcode = []; } //バックグラウンドコントロールbgmove = function(obj){var step = 1; var et = setinterval(function(){var bgpos = getbgposition(obj); if(bgpos ['top'] == 640){setbgposition(obj、0、0); // reset} else {setbgposition(obj、bgpos ['left']、bgpos ['top']+step); 50); } //バックグラウンドスイッチングbgchange = function(file){var obj = $( 'Gameplane'); SetClass(OBJ、 'GamePlane BG'+ファイル); } // Music Control bgsound = function(file、loop){var id = 'audioplayer'; if(typeof(file)!= 'undefined'){if(typeof(loop)== 'undefined'){loop = false; } var audiofile = []; audiofile ['mp3'] = 'music/' + file + '.mp3'; audiofile ['ogg'] = 'music/' + file + '.ogg'; audioplayer(id、audiofile、loop); } else {audioplayer(id); }} return this;})();この記事の説明には、全員のJavaScriptゲームデザインの特定の参照値があると思います。