您的位置: 设计首页>>设计教材>>Flash教程>>正文
由浅入深学习Flash制作赛车游戏教程
来源:网页教学网  时间:2008-11-20 点击:794次

    赛车游戏我们总是遇到!今天给大家简单讲解一下。

    先测试效果:

    点击这里下载源文件

    首先新建立一个赛车影片剪辑,由6个图层组成一个基本的赛车。放到舞台上的时候命名实例名为car1。

    由浅入深学习Flash制作赛车游戏教程

    然后根据上面的车,制作一个赛车阴影影片剪辑。拖放到舞台上的时候命名实例名为shadow1。

    由浅入深学习Flash制作赛车游戏教程

    然后建立一个新的空的影片剪辑。拖放到舞台上的时候命名实例名stepper。

    由浅入深学习Flash制作赛车游戏教程

    然后选中该空影片剪辑输入下面代码:

    onClipEvent(load){
     speed1 = 0;
    }
    onClipEvent(enterFrame){
     _root.step(1);
    }

    然后新建立一个层Action,输入下面代码:

    function step(who) {
     //check to see if the car in question is controlled by the player or by the computer
     if (_root["car"+who].code == "player") {
      //we will constantly decrease speed by multiplying it with a number below 1
      if (this["speed"+who]>0.3) {
       this["speed"+who] *= _root.speedDecay;
      } else {
       this["speed"+who] = 0;
      }
      //the car will react to certain keys
      //accelerate
      if (Key.isDown(Key.UP) && this["speed"+who]<_root.maxSpeed) {
       this["speed"+who] += _root.acceleration;
      }
      //brake (reverse)
      if (Key.isDown(Key.DOWN)) {
       this["speed"+who] -= _root.backSpeed;
      }
      //steer left
      if (Key.isDown(Key.LEFT) && this["speed"+who]>0.3) {
       _root["car"+who]._rotation -= _root.rotationStep*(this["speed"+who]/_root.maxSpeed);
      }
      //steer right
      if (Key.isDown(Key.RIGHT) && this["speed"+who]>0.3) {
       _root["car"+who]._rotation += _root.rotationStep*(this["speed"+who]/_root.maxSpeed);
      }
      this["rotation"+who] = _root["car"+who]._rotation;
      //we calculate the two components of speed (X axis and Y axis)
      this["speedx"+who] = Math.sin(this["rotation"+who]*(Math.PI/180))*this["speed"+who];
      this["speedy"+who] = Math.cos(this["rotation"+who]*(Math.PI/180))*this["speed"+who]*-1;
      //apply the components on the actual position of the car
      _root["car"+who]._x += this["speedx"+who];
      _root["car"+who]._y += this["