赛车游戏我们总是遇到!今天给大家简单讲解一下。
首先新建立一个赛车影片剪辑,由6个图层组成一个基本的赛车。放到舞台上的时候命名实例名为car1。
然后根据上面的车,制作一个赛车阴影影片剪辑。拖放到舞台上的时候命名实例名为shadow1。
然后建立一个新的空的影片剪辑。拖放到舞台上的时候命名实例名stepper。
然后选中该空影片剪辑输入下面代码:
onClipEvent(load){
speed1=0;
}
onClipEvent(enterFrame){
_root.step(1);
}
然后新建立一个层Action,输入下面代码:
functionstep(who){
//checktoseeifthecarinquestioniscontrolledbytheplayerorbythecomputer
if(_root["car"+who].code=="player"){
//wewillconstantlydecreasespeedbymultiplyingitwithanumberbelow1
if(this["speed"+who]>0.3){
this["speed"+who]*=_root.speedDecay;
}else{
this["speed"+who]=0;
}
//thecarwillreacttocertainkeys
//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;
}
//steerleft
if(Key.isDown(Key.LEFT)&&this["speed"+who]>0.3){
_root["car"+who]._rotation-=_root.rotationStep*(this["speed"+who]/_root.maxSpeed);
}
//steerright
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;
//wecalculatethetwocomponentsofspeed(XaxisandYaxis)
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;
//applythecomponentsontheactualpositionofthecar
_root["car"+who]._x+=this["speedx"+who];
_root["car"+who]._y+=this["speedy"+who];
//positiontheshadowofthecar
_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;
}
if(_root["car"+who].code=="computer"){
}
}
然后再建立一个层,输入下面代码(用于初始化变量)
car1.code="player";
acceleration=0.4;
speedDecay=0.96;
rotationStep=10;
maxSpeed=10;
backSpeed=1;
测试了!今天快下班了!!明天接着给大家把这个游戏弄的更加完整!后面还有两个步骤,大家通过测试上面的动画会发现车没有场地限制!之后我们将给它限定一定的路线。期望!