| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
Flash游戏开发中的组件应用

作者:未知    文章来源:网络    点击数:    更新时间:2007-4-26
 

 

  这些参数设置好后,这时候电影剪辑就成为一个组件,对应图标也成为组件的图标 (也可以选择自己喜欢的图标)

  c.编写组件代码。双击库中的组件CarControlBorder图标,进入该组件的舞台编辑区,在时间轴上新增加一层,命名为action.打开动作脚本编辑面板,加入代码如下:

movieclip.prototype.drehung = function() {
       this._y -= (Math.cos(Math.PI/180*this._rotation))*w;
       this._x += (Math.sin(Math.PI/180*this._rotation))*w;
};
movieclip.prototype.Grenze = function(minX, maxX, minY, maxY, faktor, nMinX, 
nMaxX, nMinY, nMaxY) {
       if (tempo>0) {
              tempo = tempo-faktor;
       }
       if (this._x>=maxX) {
              this._x = nMinX;
       }
       if (this._x<=minX) {
              this._x = nMaxX;
       }
       if (this._y>=maxY) {
              this._y = nMinY;
       }
       if (this._y<=minY) {
              this._y = nMaxY;
       }
};
movieclip.prototype.carcontrol = function(faktorN, faktorP, fG, rG, BminX, BmaxX, BminY, 
BmaxY
, Sfaktor, BnMinX, BnMaxX, BnMinY, BnMaxY) {
       if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) {
              this._rotation -= faktorN;
       }
       if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP)) {
              this._rotation += faktorP;
       }
if (Key.isDown(Key.LEFT) && w>.1 && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this._rotation -= faktorN;
       }
if (Key.isDown(Key.RIGHT) && w>.1 && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this._rotation += faktorP;
       }
       if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
              this._rotation += faktorP;
       }
       if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
              this._rotation -= faktorN;
       }
       if (Key.isDown(Key.UP)) {
              this.drehung();
       }
       if (Key.isDown(Key.DOWN)) {
              this.drehung();
       }
       if (Key.isDown(Key.UP) && !(Key.isDown(Key.DOWN)) && w>-rG && wrG && fG>w ) {
              w -= .05;
       }
       if ((w>.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this.drehung();
              w -= .03;
       }
       if ((w<-0.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this.drehung();
              w += .03;
       }
       if ((w<.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN)) && w>=0) {
              w = 0;
       }
       if ((w>-.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN)) && w<=0 
    || Key.isDown(Key.UP) && (Key.isDown(Key.DOWN))) {
              w = 0;
       }         
       this.Grenze(BminX, BmaxX, BminY, BmaxY, Sfaktor, BnMinX, BnMaxX, BnMinY, BnMaxY);
};
this._visible = 0;
_parent.onEnterFrame = function() {
       _parent[_targetInstanceName].carcontrol(leftTurn, rightTurn, forwardSpeed
    , backwardSpeed, BorderminX, BordermaxX, BorderminY, BordermaxY, Speedfactor
    , NewMinX, NewMaxX, NewMinY, NewMaxY);
};

  上面代码是整个组件的核心程序,你可能会这个长的代码感到恐惧,其实只要我们认真分析,代码还是很简单的,不信,我们来看看。

movieclip.prototype.drehung = function() {
this._y -= (Math.cos(Math.PI/180*this._rotation))*w;
this._x += (Math.sin(Math.PI/180*this._rotation))*w;
};

  给电影剪辑原型定义定义一个函数drehung,这个函数成为电影剪辑的一个方法,这样就可以计算小车电影剪辑实体的运行状态(前进/后退,加/减速)由小车的角度值(_rotation)和变量w决定,w是一个为定义型变量,后面代码决定变量w数值的改变。

  再来看看下一段代码,同样是给电影剪辑原形定义一个函数Grenze:

movieclip.prototype.Grenze = function(minX, maxX, minY, maxY
, faktor, nMinX, nMaxX, nMinY, nMaxY) {
       if (tempo>0) {
              tempo = tempo-faktor;
       }
       if (this._x>=maxX) {
              this._x = nMinX;
       }
       if (this._x<=minX) {
              this._x = nMaxX;
       }
       if (this._y>=maxY) {
              this._y = nMinY;
       }
       if (this._y<=minY) {
              this._y = nMaxY;
       }
};

  这段代码的作用主要是但小车跑出设定的区域,给小车的确定一个新的位置,这样当小车跑出时就又重新回到设置的区域中,小车活动的区域由组件的参数minX , maxX, minY , maxY决定。

  再下面一段代码是来检测按键触发的,游戏要求按键盘的UP键,小车前进,相反按键Down,小车前进,按键Left,小车左拐弯,按键Right,小车右拐弯,同时要求必须在小车运行的过程中(即是必须按住Up或Down键)按Left/Right键小车才能左拐或右拐。

  定义一个电影剪辑原形函数carcontrol, 函数有一系列参数,在最后代码段调用这个函数时,通过参数的传递来检测按键。代码主要是循环控制,具体不做说明,如果调用这个函数,这个函数也将调用drehung函数和Grenze函数。函数之间可以相互调用。

movieclip.prototype.carcontrol = function(faktorN, faktorP, fG, rG, BminX, BmaxX, BminY
, BmaxY, Sfaktor, BnMinX, BnMaxX, BnMinY, BnMaxY) {
       if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) {
              this._rotation -= faktorN;
       }
       if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP)) {
              this._rotation += faktorP;
       }
if (Key.isDown(Key.LEFT) && w>.1 && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this._rotation -= faktorN;
       }
if (Key.isDown(Key.RIGHT) && w>.1 && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this._rotation += faktorP;
       }
       if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
              this._rotation += faktorP;
       }
       if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
              this._rotation -= faktorN;
       }
       if (Key.isDown(Key.UP)) {
              this.drehung();
       }
       if (Key.isDown(Key.DOWN)) {
              this.drehung();
       }
       if (Key.isDown(Key.UP) && !(Key.isDown(Key.DOWN)) && w>-rG && fG>w) {
              w += .05;
       }
       if (Key.isDown(Key.DOWN) && !(Key.isDown(Key.UP)) && w>-rG && fG>w) {
              w -= .05;
       }
       if ((w>.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this.drehung();
              w -= .03;
       }
       if ((w<-0.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN))) {
              this.drehung();
              w += .03;
       }
       if ((w<.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN)) && w>=0) {
              w = 0;
       }
       if ((w>-.1) && (!Key.isDown(Key.UP)) && (!Key.isDown(Key.DOWN)) && w<=0 
    || Key.isDown(Key.UP) && (Key.isDown(Key.DOWN))) {
              w = 0;
       }         
       this.Grenze(BminX, BmaxX, BminY, BmaxY, Sfaktor, BnMinX, BnMaxX, BnMinY, BnMaxY);
};

上一页  [1] [2] [3] 下一页


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章