论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

CS3作的走,跑,跳,打,(as3初学者)

文章类别:Flash AS编程 | 发表日期:2008-10-6 17:36:11



源文件

代码
//参数
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("跳下");
                }
        }
        //
        //
}
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058