Flash游戏开发教程:第六节

所属分类: 媒体动画 / Flash教程 阅读数: 60
收藏 0 赞 0 分享
请先阅读:Flash游戏开发教程:第五节
范例接宝游戏中人物类的CLASS讲解
首先请下载源文件:CLASS.rar
下载好,打开一看,如下:
一个FLA主文件: run_game.fla 三个目录: player items game 我把.as类文件分门别类的存放,这样看上去清晰,更重要的是别人看了会觉得我很专业。
目录player里有: Player_1.as Player_2.as 目录items里有: Jin.as Bao1.as Bao2.as 目录game里有: Game_control.as Score_view.as Time_control.as .as具体意义看文件名就应该能知道,这里要说的是,一般默认的规则,放CLASS目录用小写字母命名,.as的类文件名的首字母用大写
这节详细讲下人物类的CLASS,首先是Player_1.as,人物小李的类
首先去源文件里点进人物1的MC,看下结构。
由两帧组成,一是“stand”,二是“run”
人物上面有一层有个圆形的MC,我把它命名为hit,靠这个mc来做碰撞检测。
金币里面也有这个名叫hit的MC,我判断人物和金币是不是相碰是用这个语句的: 金币MC.hit.hitTest(人物MC.hit)
传统碰撞检测都这么做。
又开始扯话题了,马上拉回来
现在拿出Player_1.as的代码
class player.Player_1 extends MovieClip {
private var hit:MovieClip; //人物MC里出现的东西都要声明,hit这个MC也不例外
public var speed:Number;//这个是人物移动的速度
//构造函数
function Player_1() {
init();//初始化的人物打包在init()里了
}
//隐式设置-获取法
public function set _speed(sss:Number):Void {
speed = sss;
}//可供外界用MC._speed=X修改speed的数值
public function get _speed():Number {
return (speed);
}//可供外界读取speed的数值
//私-公有方法
//---初始化方法---
private function init() {
_y = 310;
_x = 300;//人物来到舞台后的初始位置
speed = 6;//移动速度
onEnterFrame = Move;//人物来到舞台后就开始onEnterFrame,内容见Move这个function
}
//---人物移动---
private function Move() {
if (Key.isDown(37)) {
_xscale = -100;
_x -= speed;
this.gotoAndStop("run");
} else if (Key.isDown(39)) {
_xscale = 100;
_x = speed;
this.gotoAndStop("run");
} else {
this.gotoAndStop("stand");
}
//以上是左右键的定义,应该看得懂吧?
if (Key.isDown(38)) {
speed = 12;
} else {
speed = 6;
}
//以上是上键的定义,按着后速度就加倍咯
range();//范围定义,内容见下面
}
//---限定移动范围---
private function range() {
if (_x>540) {
_x = 540;
}
if (_x<10) {
_x = 10;
}//不让人物出界
}
}
这个CLASS文件就是这样。按照前几节我说的结构,鸟鸟们对照这看下。能不能看懂。这里要说的是,第一行的player.Player_1,其中前面的player表示路径“.”就相当于"\",player.Player_1就相当于player\Player_1,关联到MC的时候也要这么写的。
小李的CLASS写完了
然后写鸣人的CLASS

记得前几节我说的“继承”这个概念么?
快去翻出来看看。
鸣人和小李就是上键技能不同,所以继承过来后,正文把按键控制重写一次就行了,其它就全继承小李的类了
代码如下
class player.Player_2 extends player.Player_1 {
//继承了player.Player_1类,所以只需要把两者间唯一不同的Move函数重写次就可以啦~当然构造函数还是要的
function Player_2() {
init();
}
//人物2的Move函数
private function Move() {
if (Key.isDown(37)) {
_xscale = -100;
_x -= speed;
if (_currentframe != 3) {
gotoAndStop("run");
}//这句自己体会下,不加的话,按上键后鸣人就一直不停的在跳跃了
} else if (Key.isDown(39)) {
_xscale = 100;
_x = speed;
if (_currentframe != 3) {
gotoAndStop("run");
}
} else {
if (_currentframe != 3) {
gotoAndStop("stand");
}
}
//
if (Key.isDown(38)) {
gotoAndStop("jump");
}
range();
}
}
好了,人物类就写完了。
消化下。后面的宝物类大同小异,下一节再写。
更多精彩内容其他人还在看

flash制作可爱的简单线条笑脸

这篇教程是向脚本之家的朋友介绍flash制作可爱的简单线条笑脸方法,教程制作出来的笑脸非常可爱,而且方法不是很难,推荐过来,大家一起来学习吧
收藏 0 赞 0 分享

flash中制作文字按照顺序显示出来的gif动画

这篇教程是向脚本之家的朋友介绍flash中制作文字按照顺序显示出来的gif动画方法,教程制作出来的动画效果非常漂亮,难度不是很大,推荐过来,大家快快来学习吧
收藏 0 赞 0 分享

flash制作一个一个字的冒出来的打字效果

这篇教程是向脚本之家的朋友介绍flash制作一个一个字的冒出来的打字效果方法,教程很简单的,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

用flash制作画卷展开、合拢的gif动画效果

这篇教程是向脚本之家介绍用flash制作画卷展开、合拢的效果方法,教程制作出来的效果很不错,难度不是很大,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

flash怎么制作太阳月亮地球演示动态图?

flash怎么制作太阳月亮地球演示动态图?这个动图的制作过程很麻烦,因为出现的元素很多,下面我们就来看看绘制的图文教程,每一步都有,参数很清楚,想学习的朋友可以进来参考一下
收藏 0 赞 0 分享

flash制作一闪一闪的gif动画文字按钮效果

这篇教程是向脚本之家的朋友介绍flash制作一闪一闪的gif动画文字按钮效果方法,教程真的很不错,制作出来的效果很漂亮,推荐过来,一起来学习吧
收藏 0 赞 0 分享

在flash中制作由花生组成的好看花型

这篇教程是向脚本之家的朋友介绍在flash中制作由花生组成的好看花型方法,教程制作出来的图形很漂亮,难度也不是很大,推荐到脚本之家,喜欢的朋友一起来学习吧
收藏 0 赞 0 分享

flash逐帧动画制作全过程解析

这篇教程是向脚本之家的朋友分享flash逐帧动画制作全过程,教程非常基础,很适合新手来学习,推荐过来,有兴趣的朋友可以过来学习
收藏 0 赞 0 分享

flash引导层动画:引导层制作飞行的飞机

这篇教程是向脚本之家的朋友分享flash引导层动画:引导层制作飞行的飞机教程,教程真的很不错,很适合新手来学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享

Flash把静态的水的图片制作成形象逼真的水波效果

这篇教程是向脚本之家的朋友分享Flash把静态的水的图片制作成形象逼真的水波效果方法,教程真的很不错,很值得大家学习,推荐到脚本之家,喜欢的朋友快快来学习吧
收藏 0 赞 0 分享
查看更多