//参数 var 落下速度:Number=0; var 重力加速度:Number=1; var 主角跳动速度:Number=-15; var 主角走动速度:Number=4; var 主角跑动速度:Number=8; //主角状态 var 主角:MovieClip=小子; var 主角左:Number=-主角.scaleX; var 主角右:Number=主角.scaleX; var 动画:Boolean; var 空中:Boolean=true; var 被攻击:Boolean; var 攻击方式:String; var 攻击力量:Number=0; var 走:Boolean; var 跑:Boolean; var 攻击:Boolean; var 跳:Boolean; // var 动作:Object=new Object; 动作.走=false; //按键状态 var 键盘:Object=new Object; //方向键:上W(87),下S(83),左A(65),右D(68) //动作键:攻击拳J(74),跳K(75) 键盘.上=87;//38 键盘.下=83;//40 键盘.左=65;//37 键盘.右=68;//39 键盘.攻击=74;//16 键盘.跳=75;//17 键盘.按_上=false; 键盘.按_下=false; 键盘.按_左=false; 键盘.按_右=false; 键盘.按_攻击=false; 键盘.按_跳=false; // //--------------------------------计数刷新器----------------------------------------- var 计数刷新器:Timer=new Timer(100,0); var 数字:Number=100; 计数刷新器.start(); 计数刷新器.addEventListener(TimerEvent.TIMER,计数刷新开始); function 计数刷新开始(e:TimerEvent):void { 数字++; } // //--------------------------------人物初始化------------------------------------------ // var 人物初始化:Function=function() { 攻击方式=null; 动画=false; 主角.gotoAndStop("站"); if((键盘.按_左 || 键盘.按_右) && 走){ 主角.gotoAndStop("走"); } if((键盘.按_左 || 键盘.按_右) && 跑) { 主角.gotoAndStop("跑"); } }; // //---------------------------------按键监听----------------------------------------- // stage.addEventListener(KeyboardEvent.KEY_DOWN,按下); function 按下(e:KeyboardEvent):void { if (e.keyCode==键盘.上 && !键盘.按_上) { 键盘.按_上=true; } if (e.keyCode==键盘.下 && !键盘.按_下) { 键盘.按_下=true; } if (e.keyCode==键盘.左 && !键盘.按_左) { 键盘.按_左=true; if (数字<3) { 走=false; 跑=true; } else { 数字=0; 走=true; 跑=false; } } if (e.keyCode==键盘.右 && !键盘.按_右) { 键盘.按_右=true; if (数字<3) { 走=false; 跑=true; } else { 数字=0; 走=true; 跑=false; } } if (e.keyCode==键盘.攻击 && !键盘.按_攻击) { 键盘.按_攻击=true; } if (e.keyCode==键盘.跳 && !键盘.按_跳) { 键盘.按_跳=true; } } stage.addEventListener(KeyboardEvent.KEY_UP,松开); function 松开(e:KeyboardEvent):void { if (e.keyCode==键盘.上 && 键盘.按_上) { 键盘.按_上=false; } if (e.keyCode==键盘.下 && 键盘.按_下) { 键盘.按_下=false; } if (e.keyCode==键盘.左 && 键盘.按_左) { 键盘.按_左=false; } if (e.keyCode==键盘.右 && 键盘.按_右) { 键盘.按_右=false; } if (e.keyCode==键盘.攻击 && 键盘.按_攻击) { 键盘.按_攻击=false; } if (e.keyCode==键盘.跳 && 键盘.按_跳) { 键盘.按_跳=false; } } // //------------------------------人物监听-------------------------------------------- // stage.addEventListener(Event.ENTER_FRAME,人物监听); function 人物监听(e:Event):void { //按左右下方向键 if (键盘.按_左 && 键盘.按_右) { if (跑) { 跑=false; } // } else { if (键盘.按_左) {//按左键 if (!被攻击) { if (走) { if (!动画 && !空中 && 攻击方式==null && !动作.走) { 动作.走=true; 主角.gotoAndStop("走"); } if (空中 || 攻击方式==null) { 主角.x-=主角走动速度; } } if (跑) { if (!动画 && !空中 && 攻击方式==null && !动作.跑) { 动作.跑=true; 主角.gotoAndStop("跑"); } if (空中 || 攻击方式==null) { 主角.x-=主角跑动速度; } } if (攻击方式==null) { 主角.scaleX=主角左; } } } else if (键盘.按_右) {//按右键 if (!被攻击) { if (走) { if (!动画 && !空中 && 攻击方式==null && !动作.走) { 动作.走=true; 主角.gotoAndStop("走"); } if (空中 || 攻击方式==null) { 主角.x+=主角走动速度; } } if (跑) { if (!动画 && !空中 && 攻击方式==null && !动作.跑) { 动作.跑=true; 主角.gotoAndStop("跑"); } if (空中 || 攻击方式==null) { 主角.x+=主角跑动速度; } } if (攻击方式==null) { 主角.scaleX=主角右; } } } else { if (!被攻击) { if (!动画 && !空中 && 攻击方式==null) { 走=false; 跑=false; 动作.走=false; 动作.跑=false; 主角.gotoAndStop("站"); } } } } //按下攻击键 if (键盘.按_攻击 && !攻击 ) { 攻击=true; if (!被攻击 && 攻击方式==null) { //普通攻击 攻击方式="攻击"; 攻击力量=7; // 主角.gotoAndStop(攻击方式); } } else if (!键盘.按_攻击 && 攻击) { 攻击=false; } //按下跳键 if (键盘.按_跳 && !跳) { 跳=true; if (!空中 && !被攻击) { 空中=true; 落下速度=主角跳动速度; if (攻击方式==null) { 主角.gotoAndStop("跳上"); 提取声音("跳上声"); } } } else if (!键盘.按_跳 && 跳) { 跳=false; if (落下速度<-5) { 落下速度+=8; if (落下速度>0) { 落下速度=0; } } } // //如果目前在空中的话 if (空中) { 落下速度+=重力加速度; 主角.y+=落下速度; if (落下速度>0) { if (主角.判断人物.hitTestObject(判断路地)) { 空中=false; 主角.y=判断路地.y; } } } if (空中 && 落下速度>=0) { if (攻击方式==null) { 主角.gotoAndStop("跳下"); } } // // }
|