В этой статье описывается исходный код Cosmic Fighter 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 = ['images/fighter.png', 'image/fighter_p.png', 'image/fighter_s.png', 'Images/fighter_. 'Images/fighter_s.png', 'images/shot.png', 'images/destour.png', 'images/destry.png', 'images/egine.png', 'image/bullet.png', 'images/dift.png', 'image/bomb.png', 'image/' image/boss1.png ']; var callback = function () {var gameplane = $ ('gameplane'); Fighter.init (); Fighter.bgmove (Gameplane); } img_preload (gameimg, callback);};/** Класс Fighter*/var fighter = (function () {var hiscore = 10000; // Наибольшая оценка VAR -оценка = 0; // Совместная оценка var fighter = 3; // количество бомб и истребителя var = 3; // число Bombs var ft = null;//var -var var/var var/var var/var var/var -var var/vArtArt -var/var var/vArtArt -var var/vAr///vAR -var/vAR/vArtArt var/vAR/vAr; var is_bomning = 0; 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 Входные сбои var = 0; {'' Armor ': 2500,' left ': 136,' top ':-169,' step ': 30}, {' Armor ': 3000,' left ': 136,' top ':-169,' step ': 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], «MS8000»: [1, 10, 12, -23, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, «MS8000». 800, 2, 200, 450, -10]], 'ms8000':[[1, 10, 11, -23, 100, 10]], 'ms9500':[[3, 800, 2, 200, 450, -10]], 'ms8000':[[1, 10, 11, -23, 100, 10]], 'ms9500':[[3, 800, 2, 100, -50, 10]], 'MS11500': [[3, 800, 2, 200, 450, -10]], «MS13500»: [[3, 800, 2, 100, -50, 10]], «MS15500»: [[3, 800, 3, -50, 30, 10]], 'MS25000': [3, 800, 3, -50, 340, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]], 800, 3, -50, 90, 10]], 'ms25000':[[1, 10, 4, 150, -50, 280, 10]], 'ms25000':[[1, 10, 4, 150, -50, 280, 10]], 'ms25000':[[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], [3, 800, 5, 692, 280, -10]], 'MS35000': [[3, 680, 1, -50, 70, 10], [3, 680, 1, 1, 220, 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, 10, 10, 10, 102 11, -23, 10, 10]], 'ms40000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10]], 'MS42500': [[3, 680, 1, -50, 70, 10], [3, 680, 1, -50, 220, 10], 'MS4500': [3, 680, 1, -50, 220, 10]. 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, 8, 4, 4, 4, 40, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4. -10]], 'MS55500': [[3, 800, 3, -50, 90, 10], [3, 800, 3, -50, 280, 10]], 'MS60000': [[3, 800, 3, -50, 30, 10, 10], 'MS65000': [3, 800, 3, -50, 30, 10, 10], 'MS6000': [3, 800, 3, -50, 30, 10], ', 4, 10, 10, 10, 10, 10, 10, 10, 10, 105000'. 400, -10], [1, 10, 4, 300, -50, 10]], 'MS68000': [[3, 800, 5, 692, 110, -10], [3, 800, 5, 692, 260, -10]], 'ms71000': [[1, 10, 13, -23, 220, 10], 'MS76000': [1, 10, 13, -23, 220, 10], 'MS76000': '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]], 'ms3500':[[1, 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]], 'MS9500': [3, 800, 2, 100, -50, 10, 10], 'MS9500': [3, 800, 2, 100, -50, 10], 'MS9500 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [[3, 800, 3, -50, 30, 10], [3, 800, 3, -50, 340, 10]], 'MS20000': [3, 800, 3, -50, 90, 10, 10, 800, 800, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 800, 800, [3, 800, 3, -50, 90, 10, 800, [3, 800, 3, -50, 90, 10, 3, 800, [3, 800, 3, 90, 90, 10, 3, 80000 ': 10]], «MS35000»: [[1, 10, 4, 150, -50, 10], [1, 10, 4, 250, 400, -10]], «MS30000»: [[3, 800, 5, 692, 90, -10]], 'MS35000': [3, 800, 5, 692, 90, -10, -10], '[3, 800, 5, 692, 90, -10], [3, 800, 5, 692, 90, -10]. 1, -50, 70, 10], [3, 680, 1, -50, 220, 10]], 'MS45500': [[1, 10, 11, -23, 10, 10]], 'MS45500': [1, 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10], 'MS42500': [1, 10, 300, -50, 10], 'MS4200': [1, 10, 300, -50, 10], 'MS4200' [1, 10, 4, 300, -50, 10, '. -50, 70, 10], 'MS45500': [[3, 680, 1, -50, 70, 10]], 'MS45500': [[3, 800, 2, 50, -50, 10]], 'MS47500': [[3, 800, 2, 150, 450, -10], 'MS49500': [3, 8, 2, 450, 450, -10], 'MS49500': [3, 8, 2, 450, 450, -10], 'MS49500': [3, 8, 2, 450, 450, -10], 'MS49500': 800, 450, 450, -10], 'MS49500' [3, 8, 2, 150, 450, -10], 'MS49500' [3, 8, 2, 150, 450, -10], 'MS49500': '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': [[3, 800, 5, 692, 110, -10], [3, 800, 5, 692, 260, -10]], 'ms71000': [[1, 10, 13, -23, 220, 10]], 'ms76000': []}, // уровень 3 {'MS50': [3, 680, 680, 680, 680000 10],[3, 680, 1, -50, 10]], 'ms2500':[[3, 680, 1, -50, 70, 10],[3, 680, 1, -50, 220, 10]], 'ms3500':[[1, 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]], «MS9500»: [[3, 800, 2, 100, -50, 10], 'MS11500': [3, 800, 2, 200, 450, -10, -10], 'MS11500': [3, 800, 200, 450, -10, -10], 'MS11500': [3, 800, 200, 450, -10, -10], '[3, 800, 2, 200, 450, -10, -10],' [3, 800, 2, 200, -50, 10]], 'MS11500': [3, 2, 200, 450, -50, 10]], 'MS11500': [3, 2, 200, 450, -50, 10]], 100, -50, 10]], 'ms15500':[[3, 800, 3, -50, 30, 10]], 'ms20000':[[3, 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':[[3, 800, 5, 692, 90, -10],[3, 800, 5, 692, 280, -10]], 'ms35000':[[3, 680, 1, -50, 70, 10],[3, 680, 1, -50, 220, 10]], 'ms38000':[[1, 10, 11, -23, 10, 10]], 'ms40000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10]], 'MS42500': [[3, 800, 2, 50, -50, 10]], 'MS42500': [3, 800, 2, 150, 450, -10], 'MS4900': [3, 800, 2, 150, 450, -10], 'MS4900': -50, 10]], 'ms51500':[[3, 800, 2, 150, 450, -10]], 'ms55500':[[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],[3, 800, 3, -50, 280, 10]], 'ms60000':[[3, 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': [1, 10, 13, -23, 220, 10, 10], 'ms76000 '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]], 'ms3500':[[1, 10, 12, -23, 190, 10]], 'MS5500': [[3, 800, 2, 100, -50, 10]], «MS7500»: [[3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [3, 800, 2, 100, -50, -50, 10], 'MS15500': [3, 800, 2, 100, -50, -50, 10], 'MS15500': [3, 800, 2, 100, -50, -50, 10], 'MS15500': [3, 800, 2, 100, -50, -50, 10], 'MS15500': [3, 800, 2, 100, -50, -50, 10], 'MS15500': [3, 800, 2, 100, -50, -50, 10]. 2, 100, -50, 10]], 'MS15500': [[3, 800, 3, -50, 30, 10]], 'MS11500': [[3, 800, 3, -50, 340, 10]], 'MS20000': [[3, 800, 3, -50, 90, 10], [3, 800, 3, -50, 280, 280, 10, 280, 280, 280, 280, 280. 10, 4, 150, -50, 10],[1, 10, 4, 250, 400, -10], 'ms30000':[[3, 800, 5, 692, 90, -10]], 'ms35000':[[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':[[1, 10, 4, 100, 400, -10],[1, 10, 4, 300, -50, 10]], '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, -10], 'MS49500': [3, 800, 2, -50, -50, -50, -50], «MS49500 ': [3, 800, 2, -50, -50, -50],' MS49500 ': [3, 2, 2, -50, -50, -10]],' MS49500 ': [3, 2, 2, -50, -50, -10]],' MS49500 ': [3, 2, 2, -50, -50, -10]],' MS47500 ' 'MS51500': [[3, 800, 2, 150, 450, -10]], «MS55500»: [[3, 800, 3, -50, 90, 10]], «MS60000»: [[3, 800, 3, -50, 30, 10]], «MS65000»: [3, 800, 3, -50, 30, 10], «MS65000»: [3, 800, 3, -50, 30, 10], «MS65000»: [3, 800, 3, -50, 30, 10], «MS65000»: [3, 800, 3, 30, 10], «MS65000»: 4, 100, 400, -10], [1, 10, 4, 300, -50, 10]], 'MS68000': [[3, 800, 5, 692, 110, -10], [3, 800, 5, 692, 260, -10], 'MS71000': [1, 10, 13, -23, 220, 10], 'MS76000': [1, 10, 13, -23, 220, 10], ' / / / / / /вание { 'ms50':[[3, 680, 1, -50, 10],[3, 680, 1, -50, 290, 10]], 'ms2500':[[3, 680, 1, -50, 70, 10],[3, 680, 1, -50, 220, 10]], 'ms3500':[[1, 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]], 'MS9500': [3, 800, 2, 100, -50, 10, 10], 'MS9500': [3, 800, 2, 100, -50, 10], 'MS9500 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10]], 'MS15500': [[3, 800, 3, -50, 30, 10], [3, 800, 3, -50, 340, 10]], 'MS20000': [3, 800, 3, 90, 90, 10], '2550 ': [3, 800, 3, -50, 90, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10. 150, -50, 10], [1, 10, 4, 250, 400, -10], [1, 10, 4, 100, 400, -10]], 'MS30000': [[3, 800, 5, 692, 90, -10], [3, 800, 5, 692, 280, -10], 'MS35000 10],[3, 680, 1, -50, 220, 10]], 'ms38000':[[1, 10, 11, -23, 10, 10]], 'ms40000':[[1, 10, 4, 100, 400, -10],[1, 10, 4, 300, -50, 10]], '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, -10], 'MS49500': [[3, 800, 2, 50, -50, 10], 'MS41500': [3, 800, 2, 50, -50, 10], 'MS41500': [3, 800, 2, 50, -50, 10], 'MS41500': [3, 800, 2, 50, -50, 10], 'MS49500' [3, 800, 2, 50, -50, 10], 'MS49500'. 450, -10]], 'ms55500':[[3, 800, 3, -50, 90, 10],[3, 800, 3, -50, 280, 10]], 'ms60000':[[3, 800, 3, -50, 30, 10],[3, 800, 3, -50, 340, 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': [1, 10, 13, -23, 220, 10, 10], 'ms76000 'ms50':[[3, 680, 1, -50, 10, 10],[3, 680, 1, -50, 290, 10]], 'ms7500':[[3, 680, 1, -50, 70, 10],[3, 680, 1, -50, 220, 10]], 'ms3500':[[1, 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]], 'MS9500': [3, 800, 2, 100, -50, 10, 10], 'MS9500': [3, 800, 2, 100, -50, 10], 'MS9500 450, -10]], 'ms13500':[[3, 800, 2, 100, -50, 10]], 'ms15500':[[3, 800, 3, -50, 30, 10]], 'ms20000':[[3, 800, 3, -50, 90, 10]], 'ms15500':[[3, 800, 3, -50, 30, 10]], 'ms20000':[[3, 800, 3, -50, 90, 10]], 'ms15500':[[3, 800, 3, -50, 30, 10]], 'ms20000':[[3, 800, 3, -50, 90, 10],[3, 800, 3, -50, 280, 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': [3, 680, 1, -50, 70, 10], [3, 680, 1, 220, 220, 220, 220, 220, 220, 10, 10, 220, 220, 220, 220, 220, 10, 10, 10, 10, 220, 220, 10, 10, 10, 10, 220, 220, 1, -50, 70, 10], [3, 680 ': 1, 220, 1, -50, 70, 10], [3, 680'. 'MS42500': [[3, 800, 2, 150, 450, -10]], 'MS49500': [[3, 800, 2, 150, 450, -10]], 'MS49500': [[3, 800, 2, 150, 450, -10], 'MS49500': [3, 800, 2, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450. 'MS49500': [[3, 800, 2, 150, 450, -10]], 'MS49500': [[3, 800, 2, 150, 450, -10]], 'MS49500': [[3, 800, 2, 150, 450, -10], 'MS49500': [3, 800, 2, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450. 'MS49500': [[3, 800, 2, 50, -50, 10]], «MS51500»: [[3, 800, 2, 150, 450, -10]], «MS555500»: [[3, 800, 3, -50, 90, 10], [3, 800, 3, -50, 280, 10], 'MS60000 ’: [3, 3, 3, 3, -50, 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': [1, 2, 260, 260, -10], 'MS71000': [1, 2, 260, 260, -10], 'MS71000' [1, 260, 260, -10], 'MS71000' [1, 8, 5, 692, 260, -10], '. 10]], 'ms76000': []}]; // инициализировать init = function () {ft = $ ('Fighter'); перезагрузить(); key_event (); } // запустить game start = function () {is_clear = 0; is_protect = 0; disp (ft.id, 'show'); reset_fighter (); reset_pile (); процесс(); bgsound (level, true); bgChange (уровень); fighter_init (); } // Установить event key_event = function () {document.onkeydown = function (e) {var e = e || window.event; var curkey = e.keycode || эн. который || E.CHARCODE; if (is_start == 0) {if (creatcode.length> 12) {creatcode.shift (); } creatcode.push (curkey); // Записывают ввод читкода пользователем} if (is_start == 1 && in_array (curkey, gamekey)) {if (ackey [curkey.tostring ()] == 0 || typeof (ackey [curkey.tostring ()]) == 'undefined' ||! In_array (curkey.65])))))) = ackey [curkey.tostring ()] = 1; // Сохранить Key Down Switch (curkey) {case 37: case 39: keypriority.left = curkey; // левый правый перерыв; Случай 38: Случай 40: keypriority.top = curkey; // вверх по перерыву; }} else {return false; }} if (curkey == 13 || is_start == 1 && is_lock == 0) {// game is Start или key = 13 switch (curkey) {case 13: // enter if (is_start == 0) {is_start = 1; Disp ('Op', 'Hide'); msg_show (); setTimeout (function () {msg_hide (); creat (); start ();}, 1500); } перерыв; Случай 83: // Стрельба Shot (); перерыв; Случай 65: // бомба бомба (); перерыв; }}} document.onkeyup = function (e) {var e = e || window.event; var curkey = e.keycode || эн. который || 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 (getPosition (ft, 'left') <Movestep) {setPosition (ft, 'left', 0); if (getPosition (ft, 'top') <Movestep) {setPosition (ft, 'top', 0); if (400- (getPosition (ft, «слева») + 50) <Movestep) {setPosition (ft, «слева», 350); ||. }} // Атака заряда 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); } // стрельба с борцом = function () {// Создание пули var bullet = document.createElement ('div'); var offsetx; Switch (Power) {Case 1: OffSetX = 20; перерыв; Случай 2: Offsetx = 15; перерыв; Случай 3: Offsetx = 10; перерыв; Случай 4: Offsetx = 4; перерыв; } setClass (bullet, 'Shot' + power); // Установить начальную позицию SETPOSION BULLET (Bullet, «Top», GetPosition (Ft, «Top»)-30); SetPosition (Bullet, «слева», getPosition (ft, «слева») + offsetx); ft.parentnode.appendchild (Bullet); // Установите движение пули var et = setInterval (function () {if (getPosition (bullet, 'top') <=-30 || is_lock == 1) {clearInterval (et); ft.parentnode.removechild (bullet); // Освобождение пули} для (var i = 0; i <egrydata.length; if (urestdata [i]! if (curboss! = null) {// Boss Battle if (Impact (Bullet, Curboss ['obj'])) {// Хит босс curboss ['Armor'] = parseint (curboss ['Armor'])-Power*10; 'top')-15); SetClass (Pilebullet, 'PileShot'); // Установить начальную позицию пули SetPosition (Pilebullet, «top», getPosition (ft, «top»)-30); SetPosition (Pilebullet, «слева», getPosition (ft, «слева»)); ft.parentnode.appendchild (Pilebullet); var et = setInterval (function () {if (getPosition (pilebullet, 'top') <=-85 || is_lock == 1) {clearInterval (et); ft.parentnode.removechild (pileybullet); // Выпустить пулю} для (var i = 0; i <egindata.length; if (EneryData [i]! Curboss ['obj']) {// Хит боссу Curboss ['Armor'] = Parseint (Curboss ['Armor'])-100; } // Выпуск бомба Bomb = function () {if (is_bombing == 0 && bombnum> 0) {// не в взрыве, и есть количество бомб is_bombing = 1; Бомба -; Sethtml ('Bombnum', Bombnum); // уменьшение на 1 var непрозрачность = 100; setoPacity ($ ('бомба), непрозрачность); 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 ($ ('бомба'), 0, step*(--280));} else {clearInterval (et); disp ('бомба', 'hide'); is_bombing = 0; is_clear = 0;} step ++;}, 70); }} // Game Process = function () {var LevelData = map [level-1], обработка = 0, step = 10; var levelstep = 0; // Очистить 0 для каждого уровня var et = setInterval (function () {if (is_lock == 0) {обработка+= step; if (attrcount (leveldata)> levelstep) {// Этот уровень не был завершен, если (leveldata ['ms'+обработан]) {var i = 0; i <develdata ['ms'+обработан]. leveldata ['ms'+обработка] [i]; }/* Создание элементов уровня/* msdata: {num: количество интервала происшествия: интервал: интервал: тип: тип Верх 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, «слева», слева); ft.prentnode.AppendChild (enft); engedata.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, 'слева', getPosition (enft, 'слева')+step); count <5? Count ++: (count = 0, nepposition (1); ')> 640 ||. перерыв; случай 2: // горизонтальный var count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, «слева», getPosition (enft, «слева»)+step); count <9? Count ++: (count = 0, атака (Enft, 1,17,47)); if (getPosition (enft, ')> 400 && step> 0 | Приме && step <0 || перерыв; Случай 3: // вертикальный var count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); count <9? Count ++: (count = 0, атака (Enft, 1,17,47)); if (getPosition (enft, 'top')> 640. ClearInterval (et); перерыв; Случай 4: // левая и правая движения движения атака var count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, «слева», getPosition (enft, «слева»)+step); count <10? Count ++: (count = 0, атака (Enft, 4,17,31)); if (getPosition (enft, 'left')> = 350 & step> 0 | Приме && step <0) {step*=-1; перерыв; Случай 5: // атака из -за предела var count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); count <9? count ++: (count = 0, атака (Enft, 1,17, -17)); if (getPosition (enft, 'top') <-32 || iskaver = is13. ClearInterval (et); перерыв; Случай 11: // Power Gift Count = 0; et = setInterval (function () {if (node_exist (enft))) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setposition (enft, 'слева', getPosition (enft, 'слева')+step); count <5? Count ++: (count = 0, nepposition (1); ')> 640 || clearInterval (et); перерыв; Случай 12: // подарок бомбы var count = 0; et = setInterval (function () {if (node_exist (enft))) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setposition (enft, 'слева', getPosition (enft, 'слева')+step); count <5? Count ++: (count = 0, nepposition (1); ')> 640 || clearInterval (et); перерыв; Случай 13: // подарок истребителя var count = 0; et = setInterval (function () {if (node_exist (enft))) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setposition (enft, 'слева', getPosition (enft, 'слева')+step); count <5? Count ++: (count = 0, nepposition (1); ')> 640 || clearInterval (et); перерыв; }} // dissousce dissoumt = function (dobj) {// dobj: разрушенный объект var dest = document.createElement ('div'); setClass (dest, 'dissure'); setPosition (dest, «top», getPosition (dobj, 'top')); setPosition (dest, «слева», getPosition (dobj, «слева»)); ft.parentnode.appendchild (dest); if (dobj.id == 'Fighter') {// Истребитель получил удар по Disp (dobj.id, 'Hide'); Power = 1; бомба = 3; Fightnum--; Sethtml ('Fightternum', 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') {settimeout (function () {if (fight intrum> 0) {levelContinue ();} els 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) {case 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 ['ramor'] <= 0) {// boss uper uperval (et); if (getPosition (Bossft, 'left')> 10) {setPosition (Bossft, «слева», GetPosition (Bossft, «слева»)+Step); } else {step*=-1; count%100 == 0) {Attack (Bossft, 3, 60, 92); перерыв; }} / * Атака * obj вражеское самолет * Тип типа атаки * Левая пуля Начальная левая * Верхняя пуля начальная вершина * / attack = function (obj, type, left, top) {if (is_lock == 1) {return false; // Если заблокировано, не стреляйте} var oleft = getPosition (obj, 'left')+слева; var top = getPosition (obj, 'top')+top; Switch (type) {case 1: // атака на бойца // начальная позиция пули и позицию бойца var optoint = {x: oleft+7, y: otop+7}; var dpoint = {x: getPosition (ft, 'left')+25, y: getPosition (ft, 'top')+25}; var p = вектор (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); break; case 2: enftbullet ('sbullet', oleft, topep, 3, 8, 35); break 3: enftbultet ('yle, эн. 8, 35); перерыв; Случай 4: // атака малого рассеяния var num = 3; var st = setInterval (function () {if (num> 0) {switch (num) {case 1: enftbullet ('bullet', Oleft, topop, 0, 8, 35); Break; Case 2: Enftbullet ('Bullet', Oleft, Top, 3, 3, 35); Break 3: enftbullet ('illet', oLef, -35); Break; перерыв; }} / * enft bullet * type bullet type * oleft, верхняя пуля начальная позиция * слева, верхняя пуля * скорость * / enftbullet = function (type, oleft, вверху, слева, вверху, скорость) {var bullet = document.createElement ('div'); SetClass (Bullet, Type); SetPosition (Bullet, «слева», Oleft); SetPosition (Bullet, «Top», Top); ft.parentnode.appendchild (Bullet); var et = setInterval (function () {setPosition (bullet, 'top', getPosition (bullet, 'top')+top); setPosition (bullet, 'слева', getPosition (пуля, «слева»)+слева); if (getPosition (bullet, «слева»)> 400 || GetPosition (Bullet, 'Top')> 640 ||. } // Boss Over Boss = function () {obj = curboss ['obj']; obj.parentnode.removechild (obj); оценка (6); // BOSS SCORE VAR DEST = DOCOCT.CREATEELEMEMEMEMEMEMENT ('DIV'); SetClass (dest, 'DissultBoss'); setPosition (dest, «top», getPosition (obj, 'top')); setPosition (dest, «слева», getPosition (obj, «слева»)); 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) {leverinterval (et);};} step+if, 50); } // продолжить levelContinue = function () {reset_fighter (); disp (ft.id, 'show'); setProtect (); fighter_init (); } // пройти уровень уровня = function () {keypriority = {}; engedata = []; curboss = null; уровень ++; bgsound ('pass', false); var обрабатывается = 0; var et = setInterval (function () {is_lock = 1; обработка = обработка + 15; if (getPosition (ft, 'top')>-50) {setPosition (ft, 'top', getPosition (ft, 'top')-15);} if (обработка> = 2500) {learinterval (et); bgChange (0); } // Обновление оценки = function (type) {if (typeof (scoreTag [type])! = 'undefined') {scord = scor + scoreTag [type] * level; Sethtml ('Score', Score); if (счет> hiscore) {hiscore = scord; Sethtml («Hiscore», Hiscore); }}} // обновлять пули powerup = function () {power = power+1> 4? 4: мощность+1; } // Увеличение бомб Bombop = function () {bombnum ++; Sethtml ('Bombnum', Bombnum); } // Истребитель увеличивает истребитель up = function () {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; if (is_pile == 1) {setClass (ft, 'fighter_s');} else {setClass (ft, 'Fighter');}}, 3000)} // Collision обработка incime_handle = funct is_lock == 0) {// Сгенерированное столкновение if (is_protect == 0) {dissult (ft); ClearInterval (ET); ft.parentnode.removechild (obj); }}} // Все клиренс gameclear = function () {is_over = 1; Disp ('gameclear', 'show'); sethtml ('clearcon', 'game clear' + '<br>' + 'баллы:' + chold); bgsound ('clear', false); bgChange ('clear'); setTimeout (function () {bgSound (); init ();}, 16000); } // Конец игры GameOver = function () {is_over = 1; Disp ('GameOver', 'Show'); sethtml ('Overcon', 'level:' + level + '<br>' + 'Оценка:' + оценка); bgsound ('Over', false); bgChange ('Over'); неудача ++; setTimeout (function () {if (failtimes == 3) {alert ('enter ↑ ↑ ↓ ← → ← → ASAS, запустите игру снова, и будут сюрпризы^_^');} bgSound (); init ();}, 8000); } // Показать сообщение msg_show = function () {sethtml ('level', 'level -' + level); disp ('level', 'show'); is_lock = 1; } // скрыть сообщение msg_hide = function () {disp ('level', 'hide'); } // сбросить сброс = function () {is_start = 0; is_bombing = 0; is_lock = 1; is_over = 0; is_clear = 0; is_protect = 0; Уровень = 1; Power = 1; ackey = {}; keyPriority = {}; engedata = []; Оценка = 0; FightEnum = 3; бомба = 3; Sethtml («Hiscore», Hiscore); Sethtml ('Score', Score); Sethtml ('Fightternum', 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, «слева», 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 fighter_init = function () {var et = setInterval (function () {if (getPosition (ft, 'top')> 400) {setPosition (ft, 'top', getPosition (ft, 'top')-12);} else {clearInterval (et); is_lock = 0; } // Секретный навык 30 Life Cheat = function () {if (creatcode.join (',') == '38,38,40,40,37,39,37,39,65,83,65,83,13') {Fightenum = 30; sethtml ('fighternum', Fightnum); } creatCode = []; } // фоновое управление 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); } // Фоновое переключение bgChange = function (file) {var obj = $ ('Gameplane'); setClass (obj, 'Gameplane Bg'+file); } // 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); }} вернуть это;}) ();相信本文所述对大家javascript游戏设计有一定的借鉴价值。