`
hgfghw6
  • 浏览: 43446 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

 赛车游戏我们总是遇到!今天给大家简单讲解一下。
先测试效果:
[url=http://www.webjx.com/download.php?url=http://www.webjx.com/upfiles/20070517/20070517114146_webjx_com_1.fla]
[1b]点击这里下载源文件[/1b]
[/url]
首先新建立一个赛车影片剪辑,由6个图层组成一个基本的赛车。放到舞台上的时候命名实例名为car1。

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

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

然后选中该空影片剪辑输入下面代码:
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]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["speedy"+who];
  //position the shadow of the car
  _root["shadow"+who]._x = _root["car"+who]._x-4;
  _root["shadow"+who]._y = _root["car"+who]._y+2;
  _root["shadow"+who]._rotation = _root["car"+who]._rotation;
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/959.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics