计算机实习报告.docx

计算机实习报告.docx

ID:49081817

大小:618.02 KB

页数:42页

时间:2020-02-28

计算机实习报告.docx_第1页
计算机实习报告.docx_第2页
计算机实习报告.docx_第3页
计算机实习报告.docx_第4页
计算机实习报告.docx_第5页
资源描述:

《计算机实习报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、计算机实习报告学院:班级:学号:姓名:1、题目要求:作一个两辆赛车比赛的游戏,要求可以用A,S,D,W和小键盘的上下左右键控制小汽车的运行方向进行比赛。设计方案:所用软件为AdobeFlashCS5设置控制键,通过按键对小车进行控制,在控制的同时判断小车的位置使其行驶在跑道上,当有一辆赛车跑完三圈时,比赛结束,并输出比赛结果。开始流程图:方向键控制对两小车是否碰到跑道进行判断小车停止YN判断比赛是否完成NY显示比赛的输赢结束设计过程:1.首先要让赛车能够动起来。让赛车运动不是最难的一部分首先在defs的图层

2、里打开actions窗口,设定好赛车的加速度,减速度,最大速度,以及圈数等基本常量值。Flash中使用的的是经典的直角坐标系,所以我们在计算赛车实际的速度时要把速度分解到X轴和Y轴上,得到X分量和Y分量(如下图)。计算上述分量就要知道角度,Flash中对角度和弧度要进行转化:angle_radians=angle_degrees*(PI/180)。再加上函数,就可以让我们的车动起来。这里我用了两个类似的函数来分别控制两辆赛车,他们只有控制方向的按键不同的。2.还需要处理碰撞的问题。碰撞时整个赛车游戏中十分重

3、要的一部分,因为我们必须把赛车限制在跑道内,并且让玩家可以在最快的时间内完成比赛。在车的四边分别设置一个点,用来检测它是否碰到了不可进入的区域。如果碰到了赛道,那么赛车的速度将会降低,并且赛车的方向会得到纠正。3.处理圈数和计时的问题。设置了两个函数来分别计算总的比赛时间setTimes和单圈最好成绩setBestLap。当赛车连续经过两次检查点checkpoint时则完成一圈,当完成三圈时游戏结束,显示游戏结果。源代码:Defs:car1.code="player";car2.code="player"t

4、otalLaps=3;acceleration=0.4;speedDecay=0.96;rotationStep=10;maxSpeed=10;backSpeed=1;currentCheckpoint1=1;currentCheckpoint2=1;currentLap1=0;currentLap2=0;checkpoints=2;currentLapTXT="1/3";Actions:functionstep(who){if(_root["car"+who].code=="player"){if(thi

5、s["speed"+who]>0.3){this["speed"+who]*=_root.speedDecay;}else{this["speed"+who]=0;}//赛车控制按键的设置//加速if(Key.isDown(Key.UP)&&this["speed"+who]<_root.maxSpeed){//iftheaccelerationkeyisdown,theenginesoundvolumeissetto100this["speed"+who]+=_root.acceleration;_roo

6、t.soundmc.engineStart.setVolume(100);}//刹车if(Key.isDown(Key.DOWN)){this["speed"+who]-=_root.backSpeed;}//左转if(Key.isDown(Key.LEFT)&&Math.abs(this["speed"+who])>0.3){_root["car"+who]._rotation-=_root.rotationStep*(this["speed"+who]/_root.maxSpeed);}//右转if(K

7、ey.isDown(Key.RIGHT)&&Math.abs(this["speed"+who])>0.3){_root["car"+who]._rotation+=_root.rotationStep*(this["speed"+who]/_root.maxSpeed);}this["rotation"+who]=_root["car"+who]._rotation;//计算赛车X方向和Y方向的速度分量this["speedx"+who]=Math.sin(this["rotation"+who]*(Ma

8、th.PI/180))*this["speed"+who];this["speedy"+who]=Math.cos(this["rotation"+who]*(Math.PI/180))*this["speed"+who]*-1;//让这两个分量具体的作用到赛车的位置上_root["car"+who]._x+=this["speedx"+who];_root["car"+who]._y+=this["speedy

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。