xfdipzone 发表于 2014-5-26 23:01:22

[原创]业余时间写的一个飞行射击游戏

游戏介绍:
业余时间写的一个飞行射击游戏,纵向,共六关。

游戏需求:
1.战机可发射子弹,子弹可通过获取道具升级。
2.战机可放bomb,可获取道具增加数量。
3.战机可蓄力攻击。
4.道具有三种,分别是升级子弹,增加bomb数量,增加战机数量。
5.每关音乐不同。
6.战机被击落后再进入战场,有保护状态。
7.敌机AI设计。

游戏图片:
http://img.bbs.csdn.net/upload/201405/24/1400865833_508063.jpg

http://img.bbs.csdn.net/upload/201405/24/1400865846_814948.jpg


部分代码:
/** 宇宙战机
*   Author: fdipzone
*   Date:   2013-02-12
*   Ver:    1.0
*/
window.onload = function(){
    var gameimg = [
      'images/fighter.png',   
      'images/fighter_p.png',   
      'images/fighter_s.png',
      'images/fighter_sp.png',   
      'images/shot.png',   
      'images/destroy.png',   
      'images/destroy_boss.png',
      'images/enemy.png',   
      'images/bullet.png',   
      'images/gift.png',   
      'images/bomb.png',   
      'images/boss1.png'];
   
    var callback = function(){
      var gameplane = $('gameplane');
      fighter.init();
      fighter.bgmove(gameplane);
    }
    img_preload(gameimg, callback);
};
   
   
/** fighter class */
var fighter = (function(){
      
    var hiscore = 10000;                  // 最高分
    var score = 0;                        // 当前分
    var fighternum = 3;                     // 战机数量
    var bombnum = 3;                        // 炸弹数量
    var ft = null;                        // 战机对象
    var is_start = 0;                     // 是否已开始游戏
    var is_bombing = 0;                     // 是否爆炸中
    var is_lock = 1;                        // 是否锁定
    var is_over = 0;                        // 是否已结束
    var is_clear = 0;                     // 清屏
    var is_pile = 0;                        // 是否已达成蓄力
    var is_protect = 0;                     // 是否保护状态
    var pilenum = 0;                        // 已蓄力数量
    var ackey = {};                         // 记录键是否按下
    var keypriority = {};                   // 冲突键优先级
    var gamekey = ;      // 游戏的按键
    var scoretag = ;// 不同敌机的分数
    var level = 1;                        // 关数      
    var power = 1;                        // 战机子弹威力
    var cheatcode = [];                     // 记录cheat输入
    var failtimes = 0;                      // 挑战失败次数    // 子弹升级
    powerup = function(){
      power = power+1>4? 4 : power+1;
    }      
   
   
    // 炸弹增加
    bombup = function(){
      bombnum ++;
      setHtml('bombnum', bombnum);
    }
   
   
    // 战机增加
    fighterup = function(){
      fighternum ++;
      setHtml('fighternum', fighternum);
    }
   
   
    // 保护状态
    setProtect = function(){
      is_protect = 1;
      if(is_pile==1){
            setClass(ft, 'fighter_sp');
      }else{
            setClass(ft, 'fighter_p');
      }
      setTimeout(function(){
            is_protect = 0;
            if(is_pile==1){
                setClass(ft, 'fighter_s');
            }else{
                setClass(ft, 'fighter');
            }
      }, 3000)
    }
   
   
    // 碰撞处理
    impact_handle = function(obj, et){    // et 定时器
      if(impact(obj, ft) && is_lock==0){    // 产生碰撞
            if(is_protect==0){
                destroy(ft);
                clearInterval(et);
                ft.parentNode.removeChild(obj);
            }
      }
    }


在线游戏地址:http://campaign.nmg.hk/event/2013/test/fighter/

完整游戏代码及下载:http://blog.csdn.net/fdipzone/article/details/8580181

tonghu008 发表于 2014-5-28 09:13:57

效果不错

93728426 发表于 2014-6-5 03:59:24


好棒,挺好玩的。还有秘技可以输入
页: [1]
查看完整版本: [原创]业余时间写的一个飞行射击游戏