บทความนี้อธิบายถึงซอร์สโค้ด Cosmic Fighter ของ JS Mini-Games และแบ่งปันกับคุณสำหรับการอ้างอิงของคุณ การแนะนำเฉพาะมีดังนี้:
1. การแนะนำเกม:
เกมนี้เป็นเกมยิงปืนแนวตั้งโดยมีทั้งหมดหกระดับ
2. ข้อกำหนดของเกม:
1. นักสู้สามารถยิงกระสุนและกระสุนสามารถอัพเกรดได้โดยได้รับอุปกรณ์ประกอบฉาก
2. นักสู้สามารถวางในระเบิดและจำนวนอุปกรณ์ประกอบฉากสามารถเพิ่มขึ้นได้
3. เครื่องบินรบสามารถสะสมพลังงานในการโจมตี
4. มีสามประเภทของช่องทางคืออัพเกรดกระสุนเพิ่มจำนวนระเบิดและเพิ่มจำนวนเครื่องบินรบ
5. แต่ละระดับมีเพลงที่แตกต่างกัน
6. เครื่องบินขับไล่ไอพ่นถูกยิงลงมาแล้วเข้าสู่สนามรบและอยู่ในสถานะที่ได้รับการปกป้อง
7. การออกแบบเครื่องบินศัตรู
เกมทำงานดังแสดงในรูปด้านล่าง:
คลิกที่นี่เพื่อดาวน์โหลด รหัสตัวอย่างที่สมบูรณ์
3. ซอร์สโค้ด JavaScript ส่วน:
/** Cosmic Fighter* ผู้แต่ง: fdipzone* วันที่: 2013-02-12* ver: 1.0*/window.onload = function () {var gameimg = ['ภาพ/fighter.png', 'รูปภาพ/fight_p.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', ภาพ/'ภาพ/boss1.png' var callback = function () {var gamePlane = $ ('gamePlane'); Fighter.init (); Fighter.bgmove (GamePlane); } img_preload (gameimg, callback);};/** คลาสเครื่องบินรบ*/var fighter = (ฟังก์ชั่น () {var hiscore = 10,000; // คะแนนสูงสุด var คะแนน = 0; // คะแนนปัจจุบัน var fighter = 3; is_bombing = 0; Keypriority = {}; โกงอินพุต var failures = 0; 'ขั้นตอน': 30}, {'เกราะ': 2500, 'ซ้าย': 136, 'top':-169, 'ขั้นตอน': 30}, {'เกราะ': 3000, 'ซ้าย': 136, 'top':-169, 'ขั้นตอน': 30},]; // เครื่องบินข้าศึกที่ปรากฏ VAR ศัตรู Data = []; // ปัจจุบัน Boss var curboss ปรากฏ var curboss = null; // ระดับข้อมูลระดับ var map = [// ระดับ 1 {'MS50': [[3, 680, 1, -50, 10, 10], [3, 680, 1, -50, 290, 10]], 'MS2500': [3, 800, 2, 200, 450, -10, -10] 'MS9500': [[3, 800, 2, 200, 450, -10]], 'MS8000': [[1, 10, 11, -23, 100, 10]], 'MS9500': [[3, 800, 2, 200, 450, -10], 'MS8000' -50, 10]], 'MS11500': [[3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [3, 800, 3, -50, 30, 10, 10, 10] 'MS20000': [[3, 800, 3, -50, 90, 10]], 'MS25000': [[1, 10, 4, 150, -50, 280, 10]], 'MS25000': [[1, 10, 4, 150, -50, 280, 10] 400, -10], [1, 10, 4, 100, 400, -10]], 'MS30000': [[3, 800, 5, 692, 90, -10], [3, 800, 5, 692, 280, -10], 'MS35000' 'MS38000': [[1, 10, 11, -23, 10, 10]], 'MS40000': [[1, 10, 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, -10], 'MS49500' '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] 'MS76000': []}, // ระดับ 2 {'MS50': [[3, 680, 1, -50, 10, 10], [3, 680, 1, -50, 290, 10]], 'MS2500': [3, 680, 1, -50, 70, 10] 10, 12, -23, 190, 10]], 'MS5500': [[3, 800, 2, 100, -50, 10]], 'MS7500': [[3, 800, 2, 200, 450, -10], 'MS8000': [1, 10, 11, -23, 100, 10] 'MS11500': [[3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10], 'MS15500': [[3, 800, 3, -50, 30, 10] 10], [3, 800, 3, -50, 280, 10]], 'MS35000': [[1, 10, 4, 150, -50, 10], [1, 10, 4, 250, 400, -10]], 'MS30000': [3, 800, 5, 692, 90, -10] -10]], 'MS35000': [[3, 680, 1, -50, 70, 10], [3, 680, 1, -50, 220, 10]], 'MS45500': [[1, 10, 11, -23, 10, 10], 'MS45500' 'MS42500': [[3, 680, 1, -50, 70, 10], 'MS45500': [[3, 680, 1, -50, 70, 10]], 'MS45500': [3, 800, 2, 50, -50, 10] 'MS49500': [[3, 800, 2, 50, -50, 10]], 'MS51500': [[3, 800, 2, 150, 450, -10]], 'MS55500': [3, 800, 3, -50, 90, 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, 70, 10], [3, 680, 1, -50, 220, 10] 'MS5500': [[3, 800, 2, 100, -50, 10]], 'MS7500': [[3, 800, 2, 200, 450, -10]], 'MS8000': [[1, 10, 11, -23, 100, 10] 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [[3, 800, 3, -50, 30, 10, 10]], 'MS20000': [3, 800, 3, -50, 90, 10] 250, 400, -10], [1, 10, 4, 100, 400, -10]], 'MS30000': [[3, 800, 5, 692, 90, -10], [3, 800, 5, 692, 280, -10], 'MS35000' 10]], 'MS38000': [[1, 10, 11, -23, 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] 'MS55500': [[3, 800, 2, 50, -50, 10]], 'MS51500': [[3, 800, 2, 150, 450, -10], 'MS55500': [3, 800, 3, -50, 90, 10] 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]], 'MS76000': []}, // ระดับ 4 {'MS50': [[3, 680, 1, -50, 10, 10], [3, 680, 1, -50, 290, 10], 'MS2500': [3, 680, 1, -50, 70, 10] 'MS3500': [[1, 10, 12, -23, 190, 10]], 'MS5500': [[3, 800, 2, 100, -50, 10], 'MS7500': [3, 800, 2, 200, 450, -10], 'MS13500' 2, 100, -50, 10]], 'MS15500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [[3, 800, 3, -50, 30, 10]], 'MS11500': [3, 800, 3, -50, 340, 10] 800, 3, -50, 280, 10]], 'MS35000': [[1, 10, 4, 150, -50, 10], [1, 10, 4, 250, 400, -10], 'MS30000': [3, 800, 5, 692, 90, -10] '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] 'MS49500': [[3, 800, 2, 50, -50, 10]], 'MS51500': [[3, 800, 2, 150, 450, -10], 'MS55500': [3, 800, 3, -50, 90, 10] 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, -10] -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, 200, 450, -10], 'MS8000' 100, -50, 10]], 'MS11500': [[3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [3, 800, 3, -50, 30, 10] 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, 10] 'MS42500': [[3, 680, 1, -50, 70, 10], [3, 680, 1, -50, 220, 10], 'MS45500': [[3, 800, 2, 50, -50, 10], 'MS47500' 50, -50, 10]], 'MS51500': [[3, 800, 2, 150, 450, -10]], 'MS55500': [[3, 800, 3, -50, 90, 10], [3, 800, 3, -50, 280, 10] 340, 10]], 'MS65000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10]], 'MS68000': [[3, 800, 5, 692, 110, -10] 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, 200, 450, -10], 'MS8000' 100, -50, 10]], 'MS11500': [[3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [3, 800, 3, -50, 30, 10, 10] '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] 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' 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, 100, 400, -10], [1, 10, 4, 300, -50, 10], 'MS68000' 'MS71000': [[1, 10, 13, -23, 220, 10]], 'MS76000': []}]; // เริ่มต้น init = function () {ft = $ ('Fighter'); รีเซ็ต (); key_event (); } // เริ่มเกม start = function () {is_clear = 0; is_protect = 0; disp (ft.id, 'show'); reset_fighter (); reset_pile (); กระบวนการ(); bgsound (ระดับ, จริง); bgchange (ระดับ); Fighter_init (); } // ตั้งค่าเหตุการณ์ key_event = function () {document.onkeydown = function (e) {var e = e || window.event; var cundy = e.keycode || ก. ซึ่ง || E.Charcode; if (is_start == 0) {ถ้า (cheatcode.length> 12) {cheatcode.shift (); } cheatcode.push (ห้อยคดเคี้ยว); // บันทึกอินพุต Cheatcode โดยผู้ใช้} if (is_start == 1 && in_array (ใบคุด, gamekey)) {ถ้า (ackey [curkey.toString ()] == 0 || typeof (ackey [curkey.toString ()) == ' ackey [Dukkey.toString ()] = 1; // บันทึกสวิตช์คีย์ลง (ใบคุด) {กรณีที่ 37: กรณี 39: keypriority.left = Cradkey; // left Right Break; กรณีที่ 38: กรณีที่ 40: keypriority.top = Cradkey; // up down break; }} else {return false; }} if (Curkey == 13 || is_start == 1 && is_lock == 0) {// เกมเริ่มต้นหรือคีย์ = 13 สวิตช์ (ใบคุด) {กรณี 13: // ป้อนถ้า (is_start == 0) {is_start = 1; disp ('op', 'ซ่อน'); msg_show (); settimeout (function () {msg_hide (); cheat (); start ();}, 1500); } หยุดพัก; กรณีที่ 83: // ยิงยิง (); หยุดพัก; กรณีที่ 65: // ระเบิดระเบิด (); หยุดพัก; }}} document.onkeyup = function (e) {var e = e || window.event; var cundy = e.keycode || ก. ซึ่ง || E.Charcode; if (is_start == 1 && in_array (ใบคุด, gamekey)) {ackey [curkey.toString ()] = 0; // การปล่อยคีย์ลงถ้า (Curkey == 83) {// ปล่อยการโจมตีพลังงานถ้า (is_pile == 1) {pile_shot (); } reset_pile (); }}}} // การดำเนินการที่ดำเนินการโดย loop = function () {var movestep = 5; // ย้ายขนาดขั้นตอน var et = setInterval (function () {ถ้า (is_start == 0 || is_lock == 1) {clearinterval (et);} // ย้ายถ้า (ackey ['37 '] == 1 && (ackey ['39'] == 0 || keypriority. if (getPosition (ft, 'left') <movestep) {setPosition (ft, 'left', 0); if (getPosition (ft, 'top') <movestep) {setPosition (ft, 'top', 0); ถ้า (400- (getPosition (ft, 'left') + 50) <movestep) {setPosition (ft, 'ซ้าย', 350); || keypriority.top == 40)) {ถ้า (640- (getPosition (ft, 'top') + 50) <movestep) {setPosition (ft, 'top', 590); }} // การโจมตีค่าใช้จ่ายถ้า (ackey ['83 '] == 1) {ถ้า (pilenum <1,000) {pipeline = pipelineum + 20; } อื่นถ้า (is_pile == 0) {is_pile = 1; if (is_protect == 1) {setClass (ft, 'fighter_s'); } else {setClass (ft, 'fighter_s'); }}}}}}}}}}}}, 20); } // การถ่ายภาพการถ่ายภาพนักสู้ = function () {// สร้างกระสุน bullet var bullet = document.createElement ('div'); Var Offsetx; สวิตช์ (พลังงาน) {กรณีที่ 1: Offsetx = 20; หยุดพัก; กรณีที่ 2: Offsetx = 15; หยุดพัก; กรณีที่ 3: Offsetx = 10; หยุดพัก; กรณีที่ 4: Offsetx = 4; หยุดพัก; } setClass (กระสุน, 'shot' + power); // ตั้งตำแหน่งเริ่มต้นของกระสุน (กระสุน, 'top', getPosition (ft, 'top')-30); setPosition (กระสุน 'ซ้าย', getPosition (ft, 'ซ้าย') + Offsetx); Ft.ParentNode.AppendChild (กระสุน); // ตั้งค่าการเคลื่อนไหวของกระสุน var et = setInterval (ฟังก์ชัน () {ถ้า (getPosition (กระสุน, 'top') <=-30 || is_lock == 1) {clearInterval (et); ft.parentNode.removeChild (กระสุน) if (enemydata [i]! if (curboss! = null) {// บอสการต่อสู้ถ้า (กระสุน (กระสุนปืน, curboss ['obj']) {// ตีบอส curboss ['เกราะ'] = parseint (curboss ['เกราะ') 'top')-15);}, 30)} // ทำให้เกิดการถ่ายภาพ pile_shot = function () {var pilebullet = document.createElement ('div'); SetClass (Pilebullet, 'Pileshot'); // ตั้งค่าตำแหน่งเริ่มต้นของกระสุน setPosition (pilebullet, 'top', getPosition (ft, 'top')-30); setPosition (pilebullet, 'ซ้าย', getPosition (ft, 'ซ้าย')); Ft.ParentNode.AppendChild (Pilebullet); var et = setInterval (ฟังก์ชัน () {ถ้า (getPosition (pileBullet, 'top') <=-85 || is_lock == 1) {clearInterval (et); ft.parentNode.removeChild (pilebullet); ถ้า (INEMYDATA [I]! Curboss ['obj']) {// ตีบอส curboss ['เกราะ'] = parseint (curboss ['เกราะ')-100; } // release bomb = function () {ถ้า (is_bombing == 0 && bombnum> 0) {// ไม่ได้อยู่ในการระเบิดและมีจำนวนระเบิด IS_BOMBING = 1; bombnum -; sethtml ('bombnum', bombnum); // ลดลง 1 var opacity = 100; SetOpacity ($ ('ระเบิด') ความทึบ); disp ('ระเบิด', 'show'); // ล้างเครื่องบินข้าศึกและกระสุนศัตรูทั้งหมด is_clear = 1; // strike boss ถ้า (curboss! = null) {curboss ['เกราะ'] = parseint (curboss ['เกราะ'])-300; } var step = 0; var et = setInterval (ฟังก์ชัน () {// เอฟเฟกต์ระเบิดถ้า (ขั้นตอน <11) {setBgPosition ($ ('bomb'), 0, ขั้นตอน*(-280));} else {clearInterval (et); disp (bomb ',' ซ่อน '); is_bombing = 0; is_clear = 0; }} // กระบวนการเกมกระบวนการ = function () {var levelData = MAP [ระดับ 1], ประมวลผล = 0, ขั้นตอน = 10; var levelstep = 0; // ล้าง 0 สำหรับแต่ละระดับ var et = setInterval (function () {ถ้า (is_lock == 0) {ประมวลผล+= step; ถ้า (attrCount (levelData)> levelstep) {// ระดับนี้ยังไม่เสร็จสมบูรณ์หาก (levelData ['MS' LevelData ['MS'+ประมวลผล] [i]; }/* สร้างองค์ประกอบระดับ/* msdata: {num: จำนวนเหตุการณ์ที่เกิดขึ้น: ช่วงเวลา: ช่วงเวลา: ประเภท: พิมพ์ด้านบน: พิกัดบนสุดดั้งเดิมด้านซ้าย: ขั้นตอนการประสานงานซ้ายดั้งเดิม: ระยะการเคลื่อนไหว}*/create = function (msData) {var num = msData [0], interval = msData [1] msdata [4], step = msdata [5]; var et = setInterval (ฟังก์ชัน () {ถ้า (num> 0) {var enft = document.createElement ('div'); setClass (enft, 'องค์ประกอบ' + type); enft.type = type; setPosition (enft, 'top', top); setPosition (enft, 'ซ้าย); enemydata.push (enft); } // Element Motion Track Route = function (enft, type, step) {var et = null; สวิตช์ (พิมพ์) {กรณี 1: // curve var count = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.Abs (ขั้นตอน)); setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย') 'top')> 640 || is_over == 1 || is_clear == 1) {ClearInterval (ET); หยุดพัก; กรณีที่ 2: // count var แนวนอน = 0; ET = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย')+ขั้นตอน); นับ <9? นับ ++: (นับ = 0, การโจมตี (enft, 1,17,47) && ขั้นตอน <0 || is_over == 1 || is_clear == 1) {clearinterval (ET); หยุดพัก; กรณีที่ 3: // count var แนวตั้ง = 0; ET = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); นับ <9? นับ ++: (count = 0, การโจมตี (enft, 1,17,47); ClearInterval (ET); หยุดพัก; กรณีที่ 4: // // ซ้ายและขวาการเคลื่อนไหวการเคลื่อนไหวการโจมตี var count = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย')+ขั้นตอน); นับ <10? นับ ++: (นับ = 0, การโจมตี (enft, 4,17,31)); ถ้า && ขั้นตอน <0) {ขั้นตอน*=-1; หยุดพัก; กรณีที่ 5: // การโจมตีจากด้านหลังนับจำนวน = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); นับ <9? นับ ++: (count = 0, การโจมตี (enft, 1,17, -17)); ClearInterval (ET); หยุดพัก; กรณีที่ 11: // Power Gift var count = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.Abs (ขั้นตอน)); setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย') 'top')> 640 || is_over == 1) {ClearInterval (ET); ClearInterval (ET);}}, 80); หยุดพัก; กรณีที่ 12: // BOMB GIFT VAR COUNT = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.Abs (ขั้นตอน)); setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย') 'top')> 640 || is_over == 1) {ClearInterval (ET); ClearInterval (ET);}}, 80); หยุดพัก; กรณีที่ 13: // Gift Gift Var Count = 0; et = setInterval (ฟังก์ชัน () {ถ้า (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.Abs (ขั้นตอน)); setPosition (enft, 'ซ้าย', getPosition (enft, 'ซ้าย') 'top')> 640 || is_over == 1) {ClearInterval (ET); ClearInterval (ET);}}, 80); หยุดพัก; }} // ทำลายทำลาย = ฟังก์ชั่น (dobj) {// dobj: วัตถุที่ถูกทำลาย var dest = document.createElement ('div'); setclass (dest, 'ทำลาย'); setPosition (dest, 'top', getPosition (dobj, 'top')); setPosition (dest, 'ซ้าย', getPosition (dobj, 'ซ้าย')); Ft.ParentNode.AppendChild (DEST); if (dobj.id == 'Fighter') {// นักสู้ถูกตี (dobj.id, 'ซ่อน'); พลังงาน = 1; bombnum = 3; Fightnum--; sethtml ('fightternum', fightnum); sethtml ('bombnum', bombnum); is_lock = 1; } else {dobj.parentNode.removeChild (dobj); } var step = 0; var et = setInterval (function () {ถ้า (ขั้นตอน <11) {setBgPosition (dest, ขั้นตอน*(-48), 0); ขั้นตอน ++;} อื่น {ถ้า (dobj.id == 'Fighter') {settimeout (ฟังก์ชัน () {ถ้า (fightternum> 0) Curboss ['OBJ']; } // Boss War Bosswar = function () {var boss = bossdata [level-1]; var bossft = document.createelement ('div'); SetClass (Bossft, 'Boss' + ระดับ); setPosition (bossft, 'ซ้าย', บอส ['ซ้าย']); setPosition (bossft, 'top', boss ['top']); Ft.ParentNode.AppendChild (Bossft); curboss = {"เกราะ": บอส ['เกราะ'], "obj": bossft}; สวิตช์ (ระดับ) {กรณี 1: // บอส 1 กรณีที่ 2: // บอส 2 กรณี 3: // บอส 3 กรณี 4: // บอส 4 กรณี 5: // บอส 5 กรณี 6: // บอส 6 var step = -3; count var = 0; var et = setInterval (function () {ถ้า (getPosition (bossft, 'top') <50) {// บอสป้อน setPosition (bossft, 'top', getPosition (bossft, 'top')+5); ถ้า (getPosition (bossft, 'left')> 10) {setPosition (bossft, 'ซ้าย', getPosition (bossft, 'ซ้าย')+ขั้นตอน); } else {step*=-1; นับ%100 == 0) {Attack (Bossft, 3, 60, 92); หยุดพัก; }} / * Attack * OBJ ANEMY AIRCRAFT * ประเภทการโจมตีประเภท * กระสุนซ้ายเริ่มต้นซ้าย * BULLET TOP BULLET TOP เริ่มต้น * / Attack = Function (OBJ, ประเภท, ซ้าย, ด้านบน) {ถ้า (is_lock == 1) {return false; // ถ้าล็อคอย่ายิง} var oleft = getPosition (obj, 'ซ้าย')+ซ้าย; var top = getPosition (obj, 'top')+top; สวิตช์ (พิมพ์) {กรณีที่ 1: // โจมตีที่เครื่องบินรบ // ตำแหน่งเริ่มต้นของกระสุนและตำแหน่งของนักสู้ var oppoint = {x: oleft+7, y: otop+7}; var dpoint = {x: getPosition (ft, 'ซ้าย')+25, y: getPosition (ft, 'top')+25}; var p = เวกเตอร์ (opoint, dpoint, 8); enftbullet ('กระสุน', olft, ด้านบน, 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: // scatter Attack var num = 3; var st = setInterval (function () {if (num> 0) {switch (num) {กรณีที่ 1: enftbullet ('sbullet', oleft, top, 0, 8, 35); break; case 2: enftbullet ('sbullet', oleft, topop, 3, 35) 8, 35); หยุดพัก; กรณีที่ 4: // การโจมตีแบบกระจายขนาดเล็ก var num = 3; var st = setInterval (function () {if (num> 0) {switch (num) {กรณีที่ 1: enftbullet ('bullet', left, topop, 0, 8, 35); break; case 2: enftbullet ('bullet', Oleft, 3, 35); BREAK; หยุดพัก; }} / * enft bullet * ประเภทกระสุนประเภท * oleft, กระสุนด้านบนตำแหน่งเริ่มต้น * ซ้าย, กระสุนด้านบน * ความเร็ว * / enftBullet = ฟังก์ชั่น (ประเภท, oleft, ด้านบน, ซ้าย, ด้านบน, ความเร็ว) {bullet var = document.createElement ('div'); setclass (Bullet, type); setPosition (กระสุน 'ซ้าย', olft); SetPosition (Bullet, 'Top', ด้านบน); Ft.ParentNode.AppendChild (กระสุน); var et = setInterval (ฟังก์ชัน () {setPosition (กระสุน, 'top', getPosition (กระสุน, 'top')+ด้านบน); setPosition (กระสุน 'ซ้าย', getPosition ('ซ้าย')+ซ้าย); ถ้า (GetPosition (Bullet, 'ซ้าย') GetPosition (Bullet, 'Top')> 640 || is_lock == 1 || is_clear == 1) {ClearInterval (ET); } // 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, 'ซ้าย', getPosition (obj, 'ซ้าย')); Ft.ParentNode.AppendChild (DEST); var step = 0; var et = setInterval (function () {ถ้า (ขั้นตอน <21) {setBgPosition (dest, ขั้นตอน*(-150), 0);} อื่นถ้า (ขั้นตอน == 21) {dest.parentNode.removechild (dest);}} ถ้า (ขั้นตอน == 50) } // ดำเนินการต่อ levelContinue = function () {reset_fighter (); disp (ft.id, 'show'); setProtect (); Fighter_init (); } // ระดับระดับระดับ = ฟังก์ชัน () {keyPriority = {}; EnemyData = []; curboss = null; ระดับ ++; BGSOUND ('PASS', FALSE); VAR ประมวลผล = 0; var et = setInterval (ฟังก์ชัน () {is_lock = 1; ประมวลผล = ประมวลผล + 15; ถ้า (getPosition (ft, 'top')>-50) {setPosition (ft, 'top', getPosition (ft, 'top')-15); bgchange (0); msg_show (); } // อัปเดต scoreup = function (type) {if (typeof (scoretag [type])! = 'undefined') {score = score + scoretag [type] * ระดับ; sethtml ('คะแนน', คะแนน); ถ้า (คะแนน> hiscore) {hiscore = คะแนน; Sethtml ('Hiscore', Hiscore); }}} // Bullet Upgrade PowerUp = function () {power = power+1> 4? 4: พลังงาน+1; } // ระเบิดเพิ่ม bombop = function () {bombnum ++; sethtml ('bombnum', bombnum); } // นักสู้เพิ่มขึ้นนักสู้อัพ = ฟังก์ชั่น () {fighternum ++; sethtml ('fightternum', fighternum); } // สถานะการป้องกัน setProtect = function () {is_protect = 1; if (is_pile == 1) {setClass (ft, 'fighter_sp'); } else {setClass (ft, 'fighter_p'); } settimeout (function () {is_protect = 0; ถ้า (is_pile == 1) {setclass (ft, 'fight_s');} else {setclass (ft, 'นักมวย');}}, 3000)} // is_lock == 0) {// การชนกันสร้างถ้า (is_protect == 0) {ทำลาย (ft); ClearInterval (ET); Ft.ParentNode.removeChild (OBJ); }}} // clearance gameclear = function () {is_over = 1; disp ('gameclear', 'show'); Sethtml ('ClearCon', 'Game Clear' + '<br>' + 'คะแนน:' + คะแนน); bgsound ('ชัดเจน', เท็จ); bgchange ('ชัดเจน'); settimeout (function () {bgsound (); init ();}, 16000); } // สิ้นสุดของเกม gameover = function () {is_over = 1; disp ('gameover', 'show'); sethtml ('overcon', 'ระดับ:' + ระดับ + '<br>' + 'คะแนน:' + คะแนน); bgsound ('over', false); bgchange ('over'); FailTimes ++; settimeout (function () {ถ้า (failtimes == 3) {Alert ('Enter ↑↑↓←→←→ asas เริ่มเกมอีกครั้งและจะมีความประหลาดใจ^_^');} bgsound (); init ();}, 8000); } // แสดงข้อความ msg_show = function () {sethtml ('ระดับ', 'ระดับ -' + ระดับ); disp ('ระดับ', 'show'); is_lock = 1; } // ซ่อนข้อความ msg_hide = function () {disp ('ระดับ', 'ซ่อน'); } // รีเซ็ตรีเซ็ต = function () {is_start = 0; is_bombing = 0; is_lock = 1; is_over = 0; is_clear = 0; is_protect = 0; ระดับ = 1; พลังงาน = 1; ackey = {}; keyPriority = {}; EnemyData = []; คะแนน = 0; Fightenum = 3; bombnum = 3; Sethtml ('Hiscore', Hiscore); sethtml ('คะแนน', คะแนน); Sethtml ('Fightternum', Fightenum); sethtml ('bombnum', bombnum); reset_fighter (); reset_pile (); disp ('op', 'show'); disp ('gameover', 'ซ่อน'); disp ('gameclear', 'ซ่อน'); bgchange (0); } // รีเซ็ตตำแหน่งนักสู้ reset_fighter = function () {setPosition (ft, 'top', 640); setPosition (ft, 'ซ้าย', 175); SetClass (ft, 'Fighter'); } // รีเซ็ตค่าใช้จ่าย 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 (ฟังก์ชัน () {ถ้า (getPosition (ft, 'top')> 400) {setPosition (ft, 'top', getPosition (ft, 'top')-12); } // Secret Skill 30 Life Cheat = function () {ถ้า (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 (ฟังก์ชั่น () {var bgpos = getBgPosition (obj); ถ้า (bgpos ['top'] == 640) {setbgposition (obj, 0, 0); // รีเซ็ต} อื่น } // การสลับพื้นหลัง bgChange = function (ไฟล์) {var obj = $ ('gamePlane'); setClass (obj, 'gameplane bg'+ไฟล์); } // เพลงควบคุม bgsound = function (ไฟล์, ลูป) {var id = 'Audioplayer'; if (typeof (ไฟล์)! = 'undefined') {ถ้า (typeof (loop) == 'undefined') {loop = false; } var audiofile = []; AudioFile ['MP3'] = 'Music/' + File + '.mp3'; AudioFile ['OGG'] = 'Music/' + File + '.Ogg'; เครื่องเสียง (ID, Audiofile, Loop); } else {AudioPlayer (ID); }} ส่งคืนสิ่งนี้}) ();相信本文所述对大家javascript游戏设计有一定的借鉴价值。