이 기사에서는 JS 미니 게임의 우주 전투기 소스 코드를 설명하며 참조를 위해 귀하와 공유됩니다. 특정 소개는 다음과 같습니다.
1. 게임 소개 :
이것은 총 6 레벨의 수직으로 비행 촬영 게임입니다.
2. 게임 요구 사항 :
1. 전투기는 총알을 발사 할 수 있으며 총알을 소품을 얻어 업그레이드 할 수 있습니다.
2. 전투기는 폭탄에 배치 될 수 있으며 소품 수를 획득 할 수 있습니다.
3. 전투기 제트기는 공격을위한 힘을 축적 할 수 있습니다.
4. 3 가지 유형의 채널, 즉 업그레이드 총알, 폭탄 수를 늘리고 전투기 수를 늘리십시오.
5. 각 레벨마다 음악이 다릅니다.
6. 전투기 제트기가 격추 된 다음 전장으로 들어가고 보호 상태에 있습니다.
7. 적 항공기 AI 디자인.
게임은 아래 그림과 같이 실행됩니다.
전체 예제 코드를 다운로드하려면 여기를 클릭하십시오.
3. JavaScript 소스 코드 부분 :
/** 우주 전투기* 저자 : fdipzone* 날짜 : 2013-02-12* ver : 1.0*/wind '이미지/fighter_s.png', 'images/shot.png', 'Images/Destroy.png', 'Images/Destroy.png', 'Images/Engyy.png', 'images/bullet.png', 'images/gift.png', 'images/bomb.png', 'images/'inminds/boss1.png ']; var callback = function () {var gameplane = $ ( 'GamePlane'); fighter.init (); fighter.bgmove (게임 플레인); } img_preload (gameimg, 콜백);};/** fighter class*/var fighter = (function () {var hiscore = 10000; // 현재 점수 var score = 0; // 현재 점수 var fighter = 3; // fighter var var var var var a var are is are is a var a var a var a var a var a var var a var var a var var a var var a var 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 = {}; // 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 fail { 'Armor': 2500, '왼쪽': 136, '상단': -169, 'step': 30}, { 'Armor': 3000, '왼쪽': 136, '상단': -169, 'step': 30},]; // 적의 적의 데이터 = []; // BOSS VAR CURBOSS는 현재 var curboss = null로 나타납니다. // 레벨 데이터 var 맵 = [// 레벨 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, 10]. 'ms9500': [[3, 800, 2, 200, 450]], 'ms8000': [[1, 10, 11, -23, 100, 100], 'ms9500': [[3, 800, 2, 200, 450, -10]], 'ms8000': [[1, 10, 11, -123, 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, 340, 10, 10]. 'MS20000': [[3, 800, 3, -50, 90]], 'ms25000': [[1, 10, 4, 150, -50, 280, 10], 'ms25000': [[1, 10, 4, 150, -50, 280, 10]], '[1, 10, 4, 150, -50, 10], 10] 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, 1, 1, 220, 10]]. 'MS38000': [[1, 10, 11, -23, 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]. 'MS45500': [[3, 800, 2, 150, 450, -10]], 'MS49500': [[3, 800, 2, 50, -50, 10]], 'MS51500': [[3, 800, 2, 150, 450, -10]], '[3, 800, 2, 50, 10, 10]. 'ms51500': [[3, 800, 2, 150, 450, -10]], 'ms55500': [[3, 800, 3, 3, -50, 90, 10], [3, 800, 3, -50, 280, 10], 'ms60000': [[3, 800, 3, -50, 30, 10]] 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, 13, -123, 23, 23, 23, 23, 23, '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, 220, 220, 220]. 10, 12, -23, 190, 10]], 'MS5500': [[3, 800, 2, 100, -50, 10], 'MS7500': [[MS7500 ': [[MS8000', 'MS8000': [[1, 10, 10, 11, -23, 100], 'MS9500': [800, 2, 10, 10, 10,],], 'MS11500': [[3, 800, 2, 200, 450]], 'MS13500': [[3, 800, 2, 100, 100, 10], 'MS15500': [[3, 800, 3, -50, 30, 10], [MS200 ','[3, 80, 90, 30, 30, 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, -10], 'ms35000': [3, 800, 5, 692, 90, -10]], 'MS5000': [[3, 680, 1, 1, -50, 70, 10], [3, 680, 1, -50, 10]], 'MS45500': [[1, 10, 11, -23, 10, 10]], '[1, 10, 4, 100, 400, -10], 10, 4, 40, 50, 50, 50, 50] 'ms42500': [[3, 680, 1, -50, 70, 10], 'ms45500': [[3, 680, 1, -50, 70, 10], 'ms45500': [[3, 800, 2, 50, -50]], '[3, 800, 2, 150, 450, 450, 450, 450]. 'ms49500': [[3, 800, 2, 50, -50]], 'ms51500': [[3, 800, 2, 150, 450, -10], 'ms55500': [[3, 800, 3, -50, 90, 10], '[3, 800, 3, -50, 30, 30] 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10]], 'ms68000': [[3, 800, 5, 5, 5, 5, 692, 110, -10], [3, 800, 5, 692, 260, -10]], 'ms71000': [[1, 10, 13, -23, 220, 10], 10] 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, 12, 12, 123, 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, 10, 10, 'MS5500': [[3, 800, 2, 100, -50, 10]], 'MS7500': [[3, 800, 2, 200, 450], 'MS8000': [[1, 10, 11, -23, 100, 10], 'MS9500': [[3, 800, 2, 100, -50, 10], MS9500 ': [3, 2,,': ': 450, -10]], 'MS13500': [3, 800, 2, 100, -50, 10], 'MS15500': [[3, 800, 3, -50, 30], 'MS20000': [3, 800, 3, -50, 90, 10]], 'MS25000': [[1, 10, 15, 4, 10, 10, 4, 4, 4, 10, 10, 10, 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, 220, 10]], 'MS38000': [[1, 10, 11, -23, 10, 10]], 'MS40000': [[1, 10, 4, 400, 400, -10], [1, 10, 4, 300, -50, 10], 'ms42500': [[3, 800, 2, 50, -50, 10], 'ms4200', '[3, 800,'[3, 800 ': 450, -10]], 'MS49500': [3, 800, 2, 50, -50, 10], 'MS51500': [[3, 800, 2, 150, 450, -10]], 'MS55500': [[3, 800, 2, 150, -10], 'ms55500': [[3, 800, 2, 150], 40, 40]. 'ms55500': [[3, 800, 2, 50, -50, 10]], 'ms51500': [[3, 800, 2, 150, 450, -10], 'ms55500': [[3, 800, 3, -50, 90, [3, 800, 3, -50, 280, 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]] 10]], 'ms76000': []}, // 레벨 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]. 'ms3500': [[1, 10, 12, -23, 190]], 'ms5500': [[3, 800, 2, 100, 10], 'ms7500': [[3, 800, 2, 200, 450]], 'ms13500': [[3, 800, 2, 100, -50, 10], '3, 800': [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, 90, 90, 90, 90, 90,] 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, -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, 4, 4, 3, 3, 10, 10]. 'ms42500': [[3, 680, 1, -50, 70, 10], 'ms45500': [[3, 680, 1, -50, 220, 10]], 'ms45500': [[3, 800, 2, 50, 50, 10]], '[3, 800, 2, 150, 450, 450, 450]. 'ms49500': [[3, 800, 2, 50, -50]], 'ms51500': [[3, 800, 2, 150, 450, -10], 'ms55500': [[3, 800, 3, -50, 90, 10], '[3, 800, 3, -50, 30, 10, 30]. 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, 1, -50, 10], [3, 680, 1, -50, 290, 10], 'ms2500': [[3, 680, 1, -50, 70, 10], [3, 1, 1, 220, 10, 10]. 'ms3500': [[1, 10, 12, -23, 190]], 'ms5500': [[3, 800, 2, 100, 10], 'ms7500': [[3, 800, 2, 200, 450, -10]], '[1, 10, 11, -23, 100, 10], MS9500':, ', 2,,', ','[3, 2,, 10]. 100, -50, 10]], 'MS11500': [3, 800, 2, 200, 450, -10], 'MS13500': [[3, 800, 2, 100, -50, 10], 'MS15500': [3, 800, 3, -50, 30], [3, 800, 3, -50, 340, 10, 10, 10, 10, 10, 800, 3, -50, 90, 10], 'MS25000': [[1, 10, 4, 150, -50, 10], [1, 10, 4, 400, 400, -10], [1, 10, 4, 100, 400, -10], 'ms30000': [[3, 800, 5, 692, 90, -10], [3, 800, 5, 5, 280 -10]], 'MS5000': [[3, 680, 1, 1, -50, 70, 10], [3, 680, 1, -50, 10], 'MS38000': [[1, 10, 11, -23, 10, 10], 'MS40000': [[1, 10, 4, 100, 400, -10], 10, 4, 40, -50, 1] 'ms42500': [[3, 680, 1, -50, 70, 10], [3, 680, 1, -50, 220, 10], 'ms45500': [[3, 800, 2, 50, -50, 10], 'ms47500': [ms47500 ': [ms47500': [ms49500 ': [3, 2, 2, 50, -50, 10]], 'MS51500': [3, 800, 2, 150, 450, -10]], 'MS55500': [[3, 800, 3, -50, 10], [3, 800, 3, -50, 280, 10]], 'MS60000': [3, 800, 3, -50, 10, 10, 10]. 340, 10]], 'MS65000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, 10]], 'MS68000': [[3, 800, 5, 692, 110, -10], [MS71000 ','[1, 10, 220, 220, - 10]], 'ms76000': []}, // 레벨 6 { '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, 10, 680, 'ms3500': [[1, 10, 12, -23, 190]], 'ms5500': [[3, 800, 2, 100, 10], 'ms7500': [[3, 800, 2, 200, 450, -10]], '[1, 10, 11, -23, 100, 10], MS9500':, ', 2,,', ','[3, 2,, 10]. 100, -50, 10]], 'MS11500': [3, 800, 2, 200, 450, -10]], 'MS13500': [[3, 800, 2, 100, -50, 10], 'MS15500': [3, 800, 3, -50, 30], 'MS20000': [3, 800, 3, 30, 90, 10, 10],] 'MS15500': [[3, 800, 3, -50, 30]], 'MS20000': [[3, 800, 3, -50, 90, 10], 'MS15500': [[3, 800, 3, -50, 30, 10]], '[3, 800, 3, -50, 90, 10] 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, -10], 'MS35000': [[3, 680, 1.50, 1, 70, 10], [3, 680, 1, -50, 220]], 'ms42500': [[3, 800, 2, 150, 450, -10], 'ms49500': [[3, 800, 2, 150, 450]], '[3, 800, 2, 150, -10], 450], 450] 800, 2, 150, 450, -10]], 'ms49500': [[3, 800, 2, 150, 450, -10], 'ms49500': [[3, 800, 2, 150, 450, -10], 'ms49500': [ms49500 ': [ms49500': [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], [3, 800, 3, -50, 280, 10, 10, 800, 3, 'ms60000': [[3, 800, 3, -50, 30]], 'ms65000': [[1, 10, 4, 100, 400, -10], [1, 10, 4, 300, -50, 10], 'ms68000': [[3, 800, 5, 692, 110, -10], [3, 800, 5, 6, 6, 60, -10]. 'ms71000': [[1, 10, 13, -23, 220, 10]], 'ms76000': []}]; // initize init = function () {ft = $ ( 'fighter'); 다시 놓기(); key_event (); } // 게임 시작 시작 = function () {is_clear = 0; is_protect = 0; disp (ft.id, 'show'); reset_fighter (); reset_pile (); 프로세스(); bgsound (레벨, 참); bgchange (레벨); fighter_init (); } // event set key_event = function () {document.onkeydown = function (e) {var e = e || Window.event; var curkey = e.keycode || 이자형. 어느 || e.charcode; if (is_start == 0) {if (requcode.length> 12) {requcode.shift (); } retcode.push (curkey); // 사용자가 치트 코드 입력을 기록} if (is_start == && in_array (curkey, gamekey)) {if (ackey [curkey [curkey.tostring ()] == 0 || typeof (ackey [curkey.tostring ()]) == 'undefined'||! in_array, [83,65])))))) {// theading and anding and and and and and shooting. ackey [curkey.tostring ()] = 1; // 키 다운 스위치 (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) {// 게임은 시작하거나 키 = 13 스위치 (curkey) {case 13 : // if (is_start == 0) {is_start = 1; disp ( 'op', 'hide'); msg_show (); settimeout (function () {msg_hide (); icer (); 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) {file_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)) {// Crallic. if (ft, 'left') <movestep) {setPosition (ft, 'left', 0); if (ft, 'top') <movestep) {setPosition (ft, 'top', 0); if (400- (ft, 'left') <movestep) {setPosition (ft, 'left', 350) {setPosition (ft, 'left', getPosition (ft, 'left'); keypriority.top == 40)) {if (640- (getPosition (ft, 'top') + 50) <setPosition (ft, 'top', 590); }} // (Ackey ['83 '] == 1) {if (pilenum <1000) {파이프 라인 = 파이프 라인 + 20; } else if (is_pile == 0) {is_pile = 1; if (is_protect == 1) {setClass (ft, 'fighter_s'); } else {setClass (ft, 'fighter_s'); }}}}}}}}}}}}}, 20); } // Fighter Shight Shot = function () {// Bullet Bullet 작성 = Document.createElement ( 'div'); var offsetx; 스위치 (전원) {case 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); // release bullet} for (var i = 0; i <emydata.length; i ++) { if [i]! = If (Bullet, EnemyData [i]) {EnemyData [i]. if (curboss! = null) {// BURLET, CURBOSS [ 'obj']) {// 보스 CURBOSS [ 'ARMOR'] -POWER*10; 'top') -15);}, 30)} // fix_shot = function () {var pilebullet = document.createElement ( 'div'); setclass (pilebullet, 'pileshot'); // 총알 설정의 초기 위치를 설정합니다 (Filebullet, 'Top', getPosition (ft, 'top') -30); setPosition (filebullet, 'left', getPosition (ft, 'left')); ft.parentnode.appendChild (pilebullet); var et = setInterval (function () {if (getPosition (filebullet, 'top') <= -85 || is_lock == 1) {clearinterVal (et); ft.parentNode.removeChild (filebullet); // (var i = 0; i <Enemydata.length; i ++) {i ++). if (empture [i]! Curboss [obj ']) {// parseint ['Armor ') -10; // release bomb bomb = function () {if (is_bombing == 0 && bombnum> 0) {// 폭발이 아니며 폭탄 수가 있습니다. is_bombing = 1; 폭탄 -; Sethtml ( 'Bombnum', Bombnum); // 1 var 불투명도 = 100 감소; setOpacity ($ ( 'Bomb'), 불투명도); 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 (<11) {setBgposition ($ ( 'bomb'), 0, step*(-280));} else {clearinterval (et); disp ( 'bomb', 'hide'); is_bombing = 0; is_plear = 0; step + +;}, 70); }} // 게임 프로세스 프로세스 = function () {var levelData = map [level-1], processed = 0, step = 10; var levelstep = 0; // 각 레벨 var et = setInterval (function () {if (is_lock == 0) {processed+= step; if (attrcount (levelData)> levelstep) {//이 레벨이 (levelData [ 'ms'+processed]) {for (var i = 0; var+) {length] LevelData [MSDATE (MSDATA); //이 레벨이 완료되었습니다. }/* 레벨 요소 만들기/* MSDATA : {NUM : 발생 횟수 간격 : 간격 : 간격 : 간격 : 유형 : 유형 상단 : 원래 상단 좌표 왼쪽 : 원본 좌표 단계 : 이동 거리}*/create = function (msdata) {0], interval = msdata [1], type = msdata [2], step = 3]. MSDATA [5]; var et = setInterVal (function () {if (num> 0) {var enft = document.createElement ( 'div'); setclass (enft, 'elect' + type); enft.type = type; setPosition (enft, 'top', 상단); setPosition (enft, 'left', 왼쪽); enft (enft); if (if); empush.push (enft)} else}; } // 요소 모션 트랙 경로 = 함수 (enft, type, step) {var et = null; 스위치 (유형) {case 1 : // 커브 var count = 0; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'top', getposition (enft, 'top')+math.abs (step)); setPosition (enft, 'left', getPosition (enft, 'count = 0, step*=-1); IS_OVER = 1) {ET). 부서지다; 사례 2 : // 수평 var count = 0; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'left', getposition (enft, 'left'); count <9? count ++ : (count = 0, enft, 1,17,47)); if (getPosition (enft, 'left')> 0 | 0 | 0 | || IS_OVER IS_CLEAR == 1) {ET); 부서지다; 사례 3 : // 수직 var count = 0; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'top', getposition (enft, 'top'); 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, 'left', getposition (enft, 'left'); count <10? count ++ : (count = 0, enft, 4,17,31)); if (getPosition (enft, 'left')> 0 | 0 getporpation (enft ') <0) {is_over == || is_plear (et) {enft_handle (enft, et); 부서지다; 사례 5 : // var count = 0 뒤에서 공격; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'top', getPosition (enft, 'top')+step); count <9? count ++ : (count = 0, 1,17, -17)); if (getposition (enft, 'top') <- 32 || is_over = | is | is | is_over = is_over = is_over = 1 | ClearInterval (ET); 부서지다; 사례 11 : // Power Gift var count = 0; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'top', getposition (enft, 'top')+math.abs (step)); setPosition (enft, 'left', getPosition (enft, 'count = 0, step*=-1); is_over는 {ET) (ENFT); }, 80); 부서지다; 사례 12 : // 폭탄 선물 var count = 0; et = setInterVal (function () {if (node_exist (enft)) {setPosition (enft, 'top', getposition (enft, 'top')+math.abs (step)); setPosition (enft, 'left', getPosition (enft, 'count = 0, step*=-1); is_over는 {ET) (ENFT); }, 80); 부서지다; 사례 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, 'count = 0, step*=-1); IS_OVER는 ClearInterval (ET) (ENFT); 80); 부서지다; }} // Destrove destrove = function (dobj) {// dobj : Destroyed object 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')에 맞았습니다. 전원 = 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 () {if (step <11) {setBgposition (dest, step*(-48), 0); step ++;} else {if (dobj.id == 'fighter') {settimeout (function () {if (fightternum> 0) {if (curboss! = null) {null) {null). Curboss [obj '] gameover (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}; 스위치 (레벨) {사례 1 : // 보스 1 사례 2 : // 보스 2 사례 3 : // 보스 3 사례 4 : // 보스 4 사례 5 : // 보스 5 사례 6 : // 보스 6 var step = -3; var count = 0; var et = setInterVal (function () {if (getPosit (bossft, 'top') <50) {// setPosition (bossft, 'top', getPosition (bossft, 'top')+5); if (bossft, 'left') {setPosition (bossft, left ', getposition (bossft,'left ')} {step*= -1); 단계*= 1} if (count> = 35 == 0) {bossft, 1, 30, 30); 공격 (Bossft, 3, 60, 92)} count ++ :}}; 부서지다; }} / * 공격 * OBJ 적 항공기 * 타입 공격 유형 * 왼쪽 총알 초기 왼쪽 * 상단 총알 초기 상단 * / 공격 = 함수 (OBJ, 유형, 왼쪽, 상단) {if (is_lock == 1) {return false; // 잠긴 경우 촬영하지 마십시오} var oleft = getPosition (obj, 'left')+왼쪽; var top = getPosition (obj, 'top')+상단; 스위치 (유형) {case 1 : // 전투기에서의 공격 // 총알의 초기 위치와 전투기의 위치 var 옵스 포인트 = {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', oloff, top, 0, 8, 35); break; case 2 : enftbullet ( 'sbullet', oleft, topop, 3, 8, 35); break 3 : enftbullet ( 'sbullet', a elett ', aftbullet, - 8, 35; 부서지다; 사례 4 : // 작은 산란 공격 var num = 3; var st = setInterval (function () {if (num> 0) {switch (num) {num) {case 1 : enftbullet ( 'Bullet', Oleft, Topop, 0, 8, 35); break; case 2 : enftbullet ( 'Bullet', Oleft, Top, 3, 8, 35); case 3 : enftbullet ( 'Bullet', the Bullet ' break} num} else {st); 부서지다; }} / * enft Bullet * 유형 총알 유형 * 올레프트, 상단 총알 초기 위치 * 왼쪽, 상단 총알 * 속도 * / enftbullet = 함수 (유형, 올레프트, 상단, 왼쪽, 상단, 속도) {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')+상단); SetPosition (Bullet, 'Left', GetPosition (Bullet, 'Left')+왼쪽); if (GetPosition (Bullet, 'Left')> 400 || getPosition (Bullet, '')) <-30 || Top ') <-30 || GetPosition (Top ')은 IS_LOCK == 1) {ClearInterVal (ET); } // boss over boss = function () {obj = curboss [ 'obj']; obj.parentnode.removechild (OBJ); 스코어 업 (6); // BOSS 점수 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 단계 = 0; var et = setInterval (function () {if (spet <21) {setBgposition (dest, step*(-150), 0);} else (step == 21) {dest.parentNode.removeChild (dest);} else (step == 50) {clearInterval (et); levelup ();}, 50); } // 계속 LevelContinue = function () {reset_fighter (); disp (ft.id, 'show'); setProtect (); fighter_init (); } // 패스 레벨 레벨 = function () {keypriority = {}; EnemyData = []; curboss = null; 레벨 ++; bgsound ( 'pass', false); var 처리 = 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); } // scoreup = function (type) {if (typeof (skoretag [type])! = 'undefined') {score = score + scoretag [type] * level; sethtml ( 'score', score); if (score> hiscore) {hiscore = score; 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 Processing Impact_handle = function (obj, et) && if (obj, f) && IS_LOCK == 0) {// COLLISION IFE (is_protect == 0) {Destroy (ft); ClearInterval (ET); ft.parentNode.removeChild (OBJ); }}} // 모든 클리어런스 gameclear = function () {is_over = 1; disp ( 'gameclear', 'show'); Sethtml ( 'ClearCon', 'Game Clear' + '<br>' + '점수 :' + score); bgsound ( 'clear', false); bgchange ( 'clear'); settimeout (function () {bgsound (); init ();}, 16000); } // 게임 끝 게임 끝 GameOver = function () {is_over = 1; Disp ( 'Gameover', 'show'); sethtml ( 'overcon', 'level :' + level + '<br>' + 'score :' + score); 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'); } // reset reset = 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 ( '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, 'left', 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')-} else {clearinterval (et); is_lock = 0; action (), 30); } // 비밀 스킬 30 생활 치트 = function () {if (reatcode.join ( ',') == '38,38,40,40,37,39,37,39,65,65,83,13') {Fightenum = 30; Sethtml ( 'fighternum', fightnum); } iceatcode = []; } // 배경 제어 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'+파일); } // 음악 제어 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); }} reture this;}) ();相信本文所述对大家javascript游戏设计有一定的借鉴价值。