周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(4)

2019-08-31 22:14

如果是自己拖到舞台上,“第一帧导出”就不选 如果是attach上舞台,则就要选哦~! LESSON 7 范例接宝游戏中人物类的CLASS讲解

一般兄弟叫我小周 我的游戏玩家称呼我周哥 同事称呼我周大师

象我讨教问题的喜欢称呼我周老师

虽然我身为一名正职的FLASH设计师,大家也是可以可以称呼我为周老师的。因为一年前我作为未婚妻大人的御用陪读,不经意间居然也通过BT的几门考试得到了《上海市教师资格证》??(虽然我不知道我要这张证有什么用)??

那个??话题又乱扯了(不过也证明了我思维活跃嘛~如果你的思维有我一半的扯,日后你可以去考个证当老师了,纵使比现在的计算机老师水平高些,但也足以误人子弟)

回到本节主题上来,我们来学习范例游戏的具体代码。 首先请下载源文件:

http://images.cntvs.com/temp/CLASS范例.rar (斑竹看到帮忙传下,1.8M的附件我没权限传到坛子上)

下载好,打开一看,如下 一个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(\ } else if (Key.isDown(39)) { _xscale = 100; _x += speed;

this.gotoAndStop(\ } else {

this.gotoAndStop(\ }

//以上是左右键的定义,应该看得懂吧? 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(\

}//这句自己体会下,不加的话,按上键后鸣人就一直不停的在跳跃了 } else if (Key.isDown(39)) { _xscale = 100; _x += speed;

if (_currentframe != 3) { gotoAndStop(\ } } else {

if (_currentframe != 3) { gotoAndStop(\ } }

//

if (Key.isDown(38)) { gotoAndStop(\ }

range(); } }

好了,人物类就写完了。

消化下。后面的宝物类大同小异,下一节再写。

[附件已上传--火山留]

[ 本帖最后由 jimohuoshan 于 2007-11-1 12:02 编辑 ]

附件

CLASS范例.part1.rar (976.56 KB)

2007-11-1 12:02, 下载次数: 395 CLASS范例.part2.rar (847.74 KB)

2007-11-1 12:02, 下载次数: 342

LESSON 8 范例接宝游戏中宝物类的CLASS讲解

先补充个游戏里的结构:

_root下有三个空MC: pl,item和xs pl这个空MC是用来attach人物的 item这个空MC是用来attach宝物的 xs这个MC是用来attach显示得分的

为什么要这么做呢???因为管理方便呀~以后你会慢慢体会到的。

严重警告:第7课未搞懂看明白者,请回上节反复研究,直至搞懂。不然继续往下看会让你体内真气逆行,任、督二脉自锁,全身犹如蚂蚁咬,饭吃不下,觉睡不着,放P恶臭,对FLASH丧失学习信心??


周云的FLASH小游戏开发教室 - 基础篇(全11节[完])(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:证券营销人员合规考试试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: