当前位置:主页   - 电脑 - 图形图像 - Flash
Flash游戏开发教程:第六节
来源:网络   作者:   更新时间:2012-05-09
收藏此页】    【字号    】    【打印】    【关闭

  范例接宝游戏中人物类的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

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明