手机
当前位置:查字典教程网 >网页设计 >Flash教程 >Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第六课
摘要:范例接宝游戏中人物类的CLASS讲解首先请下载源文件:CLASS.rar下载好,打开一看,如下:一个FLA主文件:run_game.fla三...

范例接宝游戏中人物类的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就相当于playerPlayer_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 as常用后缀及意义

flash任意变形工具教程

Flash游戏开发制作旋转坦克

Flash广告动画实例教程

flash cs5基础教程-时间轴的认识

Flash游戏开发打小狗

flash钢笔工具教程

flash橡皮擦工具教程

Flash游戏开发实例制作旋转坦克

Flash 脚本游戏开发教程第二课

精品推荐
分类导航