Este artículo describe el código fuente de Cosmic Fighter de los minijuegos JS y se comparte con usted para su referencia. La introducción específica es la siguiente:
1. Introducción al juego:
Este es un juego de tiro volador, vertical, con un total de seis niveles.
2. Requisitos del juego:
1. El luchador puede disparar balas, y las balas se pueden actualizar obteniendo accesorios.
2. El luchador se puede colocar en bombas, y se puede aumentar el número de accesorios.
3. Los aviones de combate pueden acumular poder para atacar.
4. Hay tres tipos de canales, a saber, las balas de actualización, aumentar el número de bombas y aumentar el número de aviones de combate.
5. Cada nivel tiene música diferente.
6. El avión de combate es derribado y luego entra en el campo de batalla, y está en un estado protegido.
7. Diseño de aeronaves enemigas.
El juego funciona como se muestra en la figura a continuación:
Haga clic aquí para descargar el código de ejemplo completo .
3. Parte del código fuente de JavaScript:
/** Cosmic Fighter* Autor: fdipzone* Fecha: 2013-02-12* ver: 1.0*/window.onload = function () {var gameImg = ['Images/Fighter.png', 'Images/Fighter_p.png', 'Images/Fighter_s.png', 'Images/Furighter_s.png', 'Images/FeFer '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/' Images/Boss1.png ']; var llamadaback = function () {var gamePlane = $ ('gamePlane'); luchador.init (); luchador.bgmove (gameplane); } img_preload (gameImg, llamado);};/** Fighter class*/var fighter = (function () {var hiscore = 10000; // El puntaje más alto Var VAR Score = 0; // El puntaje actual var Fighter = 3; // el número de Fighter var Bombnum = 3; // el número de Bombas var Ft = NULL; // el objeto de combate; started var is_bombing = 0; // Is var is_lock = 1 in explosion; // Is var is_over = 0; // Is ended var is_clear = 0; // Is the screen clearing var is_pile = 0; // Is the power accumulation var is_protect = 0; // Is the status var pilenum = 0; // Is the power accumulation var ackey = {}; // Is the record key pressed var KeyPriority = {}; Entrada var fallas = 0; {'Armor': 2500, 'Izquierda': 136, 'Top':-169, 'Step': 30}, {'Armor': 3000, 'Left': 136, 'Top':-169, 'Step': 30},]; // El avión enemigo que aparece var enemigo enemigo datos = []; // El jefe var aparece actualmente var curboss = null; // Datos de nivel var map = [// nivel 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, 10]], 'MS9500': [[3, 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' -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]]] 'ms20000':[[3, 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], [3, 680, 1, 1, 10, 10], 10], 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], 10], 10], 10] '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':[[3, 800, 3, -50, 30, 10]], 'ms65000':[[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':[] }, // level 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]], '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, 10, 10], 10], 10] 'ms11500':[[3, 800, 2, 200, 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],[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]], '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]], 'ms455500': [1, 10, 4, 400, -10], [1, 10, 4, 10, 10, 10]: [1] 'MS42500': [[3, 680, 1, -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, 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, 10], 'Ms6000': [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, [1, Ms65. 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, 1, -50, 10, 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], 10], 10], 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, 10]]], 'ms11500' 450, -10]], 'ms13500':[[3, 800, 2, 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]], '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, 150, 450]] '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]], '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, 10, 13, -23, 220, 10]], 'ms76000': []}, // nivel 4 {'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], '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, 10]], 'MS15500': [[3, 800, 2, 100, -50, 10]], 'ms15500': [[3, 800, 3, -50, 30, 10]], 'ms11500': [[3, 800, 3, -50, 340, 10]], 'ms20000': [3, 800, 3, 3, 90, 10] [3] [3] [3] [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]], 'ms35000': [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]], 'ms40000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, --50, 10], 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, 10]], 'ms51500': [[3, 800, 2, 150, 450, -10]], 'ms55500': [[3, 800, 3, -50, 90, 10]], 'ms60000': [3, 800, 3, --50, 30, 10], 'ms65000': [3 ms65000 ': [3 ms65000': [3, [3 ms65. 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': []}, // nivel 5 {'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], 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' 100, -50, 10]], 'ms11500':[[3, 800, 2, 200, 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], '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, 5, 692, 280, 280, 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, -10], [1, 10, 4, 300, 10], 10], 10], --50, --50, --50, --50, --50, 10], --50, --50, --50] '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' 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, 800, 3, -50, 30, 10], [3, 800, 300, 350, 350, 350 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, 13, 220, 220, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,. 10]], 'ms76000': []}, // nivel 6 {'ms50': [[3, 680, 1, -50, 10, 10], [3, 680, 1, -50, 290, 10]], 'ms75500': [[3, 680, 1, -50, 70, 10], [3, 680, 1, -50, 220, 10], 10], 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' 100, -50, 10]], 'ms11500': [[3, 800, 2, 200, 450, -10]], 'ms13500': [[3, 800, 2, 100, -50, 10]], 'ms15500': [[3, 800, 3, -50, 30, 10]], 'ms2000000': [[3, 800, 3, 50, 90, 10], 10], 10], 10], 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, 3, 3, --50, ---50, --50, --50, --50, --50, --50, --50, --50. 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, -50, 220, 10]], 'ms42500': [[3, 800, 2, 150, 450, -10]], 'ms49500': [[3, 800, 2, 150, 450, -10]], 'ms49500': [3, 800, 2, 150, 450, -10]], ',': ms499 ': 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, -10]]], 'ms49500' 150, 450, -10]], '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, 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': []}]; // inicializar init = function () {ft = $ ('Fighter'); reiniciar(); key_event (); } // iniciar el juego start = function () {is_clear = 0; is_protect = 0; disp (ft.id, 'show'); reset_fighter (); reset_pile (); proceso(); bgsound (nivel, verdadero); bgchange (nivel); Fighter_init (); } // Establecer evento Key_event = function () {document.OnKeydown = function (e) {var e = e || Window.event; var CURKEY = E.KEYCODE || mi. que || E.Charcode; if (is_start == 0) {if (truceCode.length> 12) {trateCode.shift (); } trucocode.push (CURKEY); // registra la entrada de código de trucos por el usuario} if (is_start == 1 && in_array (crekey, juegokey)) {if (ackey [curkey.ToString ()] == 0 || typeOf (ackey [curkey.ToString ()]) == 'no definado' || Actwey [CURKEY.ToString ()] = 1; // Guardar el interruptor de la llave hacia abajo (CURKEY) {Case 37: Case 39: KeyPriority.left = CuyKey; // Descanso derecho izquierdo; Caso 38: Caso 40: KeyPriority.top = CuyKey; // Break hacia abajo; }} else {return false; }} if (CURKEY == 13 || is_start == 1 && is_lock == 0) {// El juego es inicio o clave = 13 switch (CURKEY) {case 13: // Enter if (is_start == 0) {is_start = 1; disp ('op', 'ocultar'); msg_show (); setTimeOut (function () {msg_hide (); truco (); start ();}, 1500); } romper; caso 83: // disparo de disparos (); romper; caso 65: // bomba de bomba (); romper; }}} document.OnKeyUp = function (e) {var e = e || Window.event; var CURKEY = E.KEYCODE || mi. que || E.Charcode; if (is_start == 1 && in_array (CURKEY, GameKey)) {ackey [CURKEY.ToString ()] = 0; // Libere la tecla Down if (CURKEY == 83) {// Relase el ataque de potencia if (is_pile == 1) {pelle_shot (); } reset_pile (); }}}} // Acción ejecutada por bucle = function () {var moveStep = 5; // Tamaño del paso de movimiento var et = setInterval (function () {if (is_start == 0 || is_lock == 1) {clearValval (et);} // mude if (ackey ['37 '] == 1 && (ackey ['39'] == 0 || keyPriority.left == 37)) {// juicio prioritario en conflicto en conflicto if (getPosition (ft, 'izquierda') <MoveStep) {setPosition (ft, 'izquierda', 0); if (getPosition (ft, 'top') <MoveStep) {setPosition (ft, 'top', 0); if (400- (getPosition (ft, 'izquierda') + 50) <MoveStep) {setPosition (ft, 'izquierda', 350); || KeyPriority.TOP == 40)) {if (640- (getPosition (ft, 'top') + 50) <Movestep) {setPosition (ft, 'top', 590); }} // Charge Attack 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); } // Fighter Shooting Shot = function () {// Crea Bullet var bullet = document.createElement ('div'); var offsetX; switch (potencia) {caso 1: offsetX = 20; romper; Caso 2: offsetX = 15; romper; Caso 3: offsetX = 10; romper; Caso 4: offsetX = 4; romper; } setClass (bala, 'disparo' + potencia); // Establezca la posición inicial de la posición de la bala (bala, 'top', getPosition (ft, 'top')-30); setPosition (bala, 'izquierda', getPosition (ft, 'izquierda') + offsetx); ft.ParentNode.AppendChild (bala); // Establezca el movimiento de la bala var et = setInterval (function () {if (getPosition (bullet, 'top') <=-30 || is_lock == 1) {clearInterval (et); ft.parentnode.removechild (viñeta); // bullet} para (var i = 0; i <emyData.length; i ++) {{= {= {= {{{{{{/ {//RMAT if (enemyData [i]! = if (CURBOSS! = NULL) {// BURS BATTLE if (Impact (Bullet, Curboss ['obj'])) {// golpea el jefe Curboss ['Armor'] = parseint (Curboss ['Armor'])-Power*10 'top')-15); setClass (pilebullet, 'pileshot'); // Establezca la posición inicial de la posición de bala (pilebullet, 'top', getPosition (ft, 'top')-30); setPosition (pilebullet, 'izquierda', getPosition (ft, 'izquierda')); ft.ParentNode.AppendChild (pilebullet); var et = setInterval (function () {if (getPosition (pilebullet, 'top') <=-85 || is_lock == 1) {clearInterval (et); ft.parentnode.removechild (pilebullet); // liberar la bullet} para (var i = 0; i <emydata.length; i ++) {{{{{{{{{{{{ if (enemyData [i]! = null) {if (impact (pilebullet, enemyData [i])) {// golpear el plano enemigo (enemyData [i]) Curboss ['obj'])) {// golpea el jefe Curboss ['Armor'] = parseInt (Curboss ['Armor'])-100; } // liberar bomba bombar = function () {if (is_bombing == 0 && bombnum> 0) {// no en la explosión y hay un recuento de bombas is_bombing = 1; Bombnum -; Sethtml ('Bombnum', Bombnum); // disminución por 1 var opacidad = 100; setOpacity ($ ('bomba'), opacidad); disp ('bomba', 'show'); // despejar todos los planos enemigos y las balas enemigas is_clear = 1; // Strike Boss if (Curboss! = Null) {Curboss ['Armor'] = parseInt (Curboss ['Armor'])-300; } var paso = 0; var et = setInterval (function () {// Bomb Effect if (step <11) {setBgPosition ($ ('bomba'), 0, step*(-280));} else {ClearInterval (et); disp ('bomba', 'escondite'); is_bombing = 0; is_clear = 0;} step ++;}, 70); }} // Game Process Process = function () {var nivelData = map [nivel-1], procesado = 0, step = 10; var nivelstep = 0; // Borrar 0 para cada nivel var et = setInterval (function () {if (is_lock == 0) {procesado+= steps; if (attrCount (nivelado de nivel LevelData ['MS'+procesado] [i]; }/* Crear elementos de nivel/* msdata: {num: el número de ocurrencias Intervalo: Interval: Intervalado: Tipo: Tipo Top: Coordinada Top original Izquierda: Paso de coordenadas izquierdo original: distancia de movimiento}*/create = function (msdata) {var num = msdata [0], interval = msdata [1], type = msdata [2], top = msdata [3], msdata [4], msdata [4], msdata [4], paso a la izquierda, MSDATA [5]; var et = setInterval (function () {if (num> 0) {var enft = document.createElement ('div'); setClass (enft, 'elemento' + type); enft.type = type; setPosition (enft, 'top', top); setPosition (enft, 'izquierda', izquierda); ft.parentnode.appendchild (enft); if (type (type) enemyData.push (Enft); } // El elemento Ruta de la pista de movimiento = function (enft, type, step) {var et = null; interruptor (tipo) {caso 1: // curva var count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); cohy <5? 'Top')> 640 || romper; Caso 2: // Horizontal var cuenta = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); Count <9? Count ++: (Count = 0, Attack (Enft, 1,17,47)); if (obtenida (Enft, 'Left')> 400 & & STEP> 0 || GetPosition (enft, '); & y el paso <0 || romper; Caso 3: // vertical var cuenta = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); Count <9? Count ++: (Count = 0, Attack (Enft, 1,17,47)); if (Entft (enft, 'Top')> 640 || IS_Over == 1 || 1 1 || 1 1) ClearInterval (et); romper; Caso 4: // Ataque de movimiento de bucle izquierdo y derecho Var Count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); Count <10? Count ++: (Count = 0, Attack (Enfft, 4,17,31)); if (obtenga (Enft, 'Left')> = 350 && Step> 0 || getPosit & y el paso <0) {paso*=-1; romper; Caso 5: // Ataque desde atrás Var Count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); Count <9? Count ++: (Count = 0, Attack (Enft, 1,17, -17); if (getPosition (enft, 'top') <-32 || is_over == || ClearInterval (et); romper; Caso 11: // Power Gift Var Count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); cohy <5? 'Top')> 640 || ClearInterval (ET); romper; Caso 12: // Bomba de regalo Var Count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); cohy <5? 'Top')> 640 || ClearInterval (ET); romper; Caso 13: // Fighter Gift Var Count = 0; et = setInterval (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+math.abs (step)); setPosition (enft, 'izquierda', getPosition (enft, 'izquierda')+step); cohy <5? 'top')> 640 || ClearInterval (ET); romper; }} // destruir destruye = function (dobj) {// dobj: el objeto destruido var dest = document.createElement ('div'); setClass (dest, 'destruir'); setPosition (des, 'top', getPosition (dobj, 'top')); setPosition (dest, 'izquierda', getPosition (dobj, 'izquierda')); ft.ParentNode.AppendChild (Dest); if (dobj.id == 'Fighter') {// El luchador fue golpeado disp (dobj.id, 'ocultar'); poder = 1; Bombnum = 3; Fightnum--; Sethtml ('Fightternum', Fightnum); Sethtml ('Bombnum', Bombnum); is_lock = 1; } else {dobj.parentnode.removechild (dobj); } var paso = 0; var et = setInterval (function () {if (step <11) {setBgPosition (dest, step*(-48), 0); step ++;} else {if (doBJ.id == 'Fighter') {setTimeOut (function () {if (fightternum> 0) {nivelcontinue ();} else {if (curboss! = null) Curboss ['obj']; } // boss war bosswar = function () {var boss = bossData [nivel-1]; var bossft = document.createElement ('div'); setClass (Bossft, 'Boss' + nivel); setPosition (bossft, 'izquierda', jefe ['izquierda']); setPosition (bossft, 'top', boss ['top']); ft.ParentNode.AppendChild (Bossft); Curboss = {"Armor": Boss ['Armor'], "Obj": Bossft}; Switch (nivel) {caso 1: // jefe 1 caso 2: // jefe 2 caso 3: // jefe 3 caso 4: // jefe 4 caso 5: // jefe 5 caso 6: // jefe 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 sobre ClearVal (et); Bossover ();} más if (getPosition (bossft, 'izquierda')> 10) {setPosition (bossft, 'izquierda', getPosition (bossft, 'izquierda')+step); } else {Step*=-1; recuento%100 == 0) {Attack (Bossft, 3, 60, 92); romper; }} / * ataque * obj enemigo aeronave * Tipo de ataque Tipo * Bullet izquierda Inicial Izquierda * Top Bullet Initial Top * / Attack = Function (obj, type, izquierda, arriba) {if (is_lock == 1) {return false; // si está bloqueado, no dispare} var oleft = getPosition (obj, 'izquierda')+izquierda; var top = getPosition (obj, 'top')+top; Switch (tipo) {Caso 1: // Ataque en el luchador // La posición inicial de la bala y la posición del luchador var opPoint = {x: oleft+7, y: otop+7}; var dPoint = {x: getPosition (ft, 'izquierda')+25, y: getPosition (ft, 'top')+25}; var p = vector (Opoint, dPoint, 8); enftbullet ('bala', oleft, top, p [0], p [1], 35); romper; caso 2: // ataque recto var num = 3; var st = setInterval (function () {if (num> 0) {enftbullet ('bullet', oleft, top, 0, 8, 35); num -;} else {clearInterval (st);}}, 150); romper; caso 3: // ataque de dispersión 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, topop, 3, 8, 3, 35); break; case 3: enftbullet (sbullet ('sblullet', oolet, oole, oole, -, --3, --3, --3, - 8, 35); romper; Caso 4: // Ataque de dispersión pequeña 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, 8, 35); break; case 3: enftbullet ('bullet', oolet, oolft, top, 3, 8, 35); break; case 3: enftbullet ('bullet', oolet, oolft, top, 3, 8, 35); break; romper; }} / * Bullet de enft * Tipo de bala tipo * oleft, bala superior posición inicial * izquierda, bala superior * velocidad * / enftbullet = function (type, oleft, superior, izquierda, superior, velocidad) {var bullet = document.createElement ('div'); setClass (bala, tipo); setPosition (bala, 'izquierda', oleft); setPosition (bala, 'superior', superior); ft.ParentNode.AppendChild (bala); var et = setInterval (function () {setPosition (bullet, 'top', getPosition (bullet, 'top')+top); setPosition (bala, 'izquierda', getPosition (bullet, 'izquierda')+izquierda); if (getPosition (bullet, 'izquierda')> 400 || getposition (bullet, 'izquierda') <-30 || getPosition (bullet, 'top') GetPosition (Bullet, 'Top')> 640 || } // boss over boss = function () {obj = Curboss ['obj']; obj.parentnode.removechild (obj); ScoreUp (6); // Boss Score var dest = document.createElement ('div'); setClass (dest, 'DestroyBoss'); setPosition (dest, 'top', getPosition (obj, 'top')); setPosition (dest, 'izquierda', getPosition (obj, 'izquierda')); ft.ParentNode.AppendChild (Dest); Paso var = 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) {clareinterval (et); nivelado ();} step ++;}, 50); } // Continuar con nivelcontinue = function () {reset_fighter (); disp (ft.id, 'show'); setProtect (); Fighter_init (); } // pase nivel nivel = function () {keyPriority = {}; enemyData = []; Curboss = nulo; nivel ++; bgsound ('pase', falso); var procesado = 0; var et = setInterval (function () {is_lock = 1; procesado = procesado + 15; if (getPosition (ft, 'top')>-50) {setPosition (ft, 'top', getPosition (ft, 'top')-15);} if (procesado> = 2500) {claro (et); disp (ft.id, 'hide'; if ((nivel) BGCHIVE (0); } // actualizar scAORTUP = function (type) {if (typeOf (scoretag [type])! = 'Undefined') {stork = score + scoretag [type] * nivel; sethtml ('puntaje', puntaje); if (score> hiscore) {hiscore = stork; sethtml ('hiscore', hiscore); }}} // Bullet Actualad PowerUp = function () {Power = Power+1> 4? 4: potencia+1; } // Bomba Bombop = function () {Bombnum ++; Sethtml ('Bombnum', Bombnum); } // Fighter aumenta Fighter up = function () {Fighternum ++; Sethtml ('Fightternum', Fighternum); } // Estado de protección setProtect = function () {is_protect = 1; if (is_pile == 1) {setClass (ft, 'Fighter_sp'); } else {setClass (ft, 'Fighter_p'); }} sateTimeOut (function () {is_ProTect = 0; if (is_pile == 1) {setClass (ft, 'Fighterter_s');} else {setClass (ft, 'Fighter' ');}}, 3000)} // is_lock == 0) {// colisión generada if (is_protect == 0) {destruir (ft); ClearInterval (ET); ft.parentnode.removechild (obj); }}} // Toda la eliminación gameclear = function () {is_over = 1; disp ('gameclear', 'show'); sethtml ('clearCon', 'juego claro' + '<br>' + 'puntaje:' + puntaje); bgsound ('claro', falso); bgchange ('claro'); setTimeOut (function () {bgsound (); init ();}, 16000); } // end del juego gameOver = function () {is_over = 1; disp ('gameover', 'show'); sethtml ('overcon', 'nivel:' + nivel + '<br>' + 'puntaje:' + puntaje); bgsound ('sobre', falso); bgchange ('over'); FailTimes ++; setTimeOut (function () {if (failTimes == 3) {alert ('Enter ↑ ↑ ↓ ← → ← → ASAS, inicie el juego nuevamente, y habrá sorpresas^_^');} bgsound (); init ();}, 8000); } // Mostrar mensaje msg_show = function () {sethtml ('nivel', 'nivel -' + nivel); disp ('nivel', 'show'); is_lock = 1; } // ocultar el mensaje msg_hide = function () {disp ('nivel', 'ocultar'); } // restablecer restar = function () {is_start = 0; is_bombing = 0; is_lock = 1; is_over = 0; is_clear = 0; is_protect = 0; nivel = 1; poder = 1; Ackey = {}; keyPriority = {}; enemyData = []; puntaje = 0; Fightenum = 3; Bombnum = 3; sethtml ('hiscore', hiscore); sethtml ('puntaje', puntaje); Sethtml ('Fightternum', Fightenum); Sethtml ('Bombnum', Bombnum); reset_fighter (); reset_pile (); disp ('op', 'show'); disp ('GameOver', 'Ocultar'); disp ('gameclear', 'escondite'); bgchange (0); } // RESET POSICIÓN DE FISTER RESET_FIGER = function () {setPosition (ft, 'top', 640); setPosition (ft, 'izquierda', 175); setClass (ft, 'luchador'); } // RESET CARGA RESET_PILE = function () {is_pile = 0; pilenum = 0; if (is_protect == 1) {setClass (ft, 'Fighter_p'); } else {setClass (ft, 'luchador'); }} // Inicialización de combate Fighter_init = function () {var et = setInterval (function () {if (getPosition (ft, 'top')> 400) {setPosition (ft, 'top', getPosition (ft, 'top')-12);} else {clearinVal (et); is_lock = 0; acción ();}}, 30); } // Secret Skill 30 Life Cheat = function () {if (Cheatcode.Join (',') == '38,38,40,40,37,39,37,39,65,83,65,83,13') {FightEnum = 30; Sethtml ('Fighternum', Fightnum); } Cheatcode = []; } // Control de fondo 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 ['izquierda'], bgPos ['superior']+step);}}, 50); } // conmutación de fondo bgChange = function (archivo) {var obj = $ ('gamePlane'); setClass (obj, 'GamePlane bg'+archivo); } // control de música bgsound = function (archivo, bucle) {var id = 'audioplayer'; if (typeof (file)! = 'Undefined') {if (typeof (loop) == 'Undefined') {bucle = false; } var audiofile = []; audiofile ['mp3'] = 'music/' + file + '.mp3'; audiofile ['ogg'] = 'music/' + file + '.ogg'; AudioPlayer (id, audiofile, bucle); } else {AudioPlayer (id); }} return this;}) ();相信本文所述对大家javascript游戏设计有一定的借鉴价值。