以下是网学网为您推荐的VC与C++类别-VC++游戏设计,希望本篇文章对您学习有所帮助。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
3.3 物体的移动 物理动作在游戏中是不可或缺的,凡是物体移动、碰撞或者是物体爆破后碎片的分散等等,都属于物体动作的一部分,而在程序中要制作这些物理动作的效果,就要应用一些物理公式与数学计算方法了。 3.3.1匀速和变速运动 物体会移动,那是因为物体具有“速度”,“速度”就是物体在各个方向上“速度分量”的总和。如果一个2D平面上移动的物体,它的移动速度V便是X轴上的移动速度Vx加上Y轴方向移动Vy的速度[6]。 匀速移动时物体在每一个时刻的速度都是相同的,亦即Vx和Vy都保持不变。如有一个小球,小球为黑色,四周为白色,为了产生小球匀速运动的效果。小球四周的白色部分是为了重新贴图能覆盖掉上一次的小球,这样便可不用再多做一次清除上次贴图的动作。不过如果所设置的移动速度超出了留白部分所能遮盖的范围,如Vx或Vy大于设定值,则要多做一次清除上次贴图的动作,或者加大小球四周留白的范围,不然会在屏幕上出现残留的小球。 物体移动的时候,如果运动的速度与方向随着时间而改变,那么该物体的运动便属于变速运动。加速度与速度的关系是:V=Vo+at 其中V为加入加速度后的速度;Vo为原来的速度;a为加速度,即每一时刻速度的改变值;t是时间,通常亦程序中的时间间隔为单位。若一个物体在2D平面上运动,那么其前一时刻与下一时刻在X、Y轴上运动的速度分别为:Vx=Vxo+ax和Vy=Vyo+ay 其中Vxo与Vyo为物体原来在X、Y轴上的运动速度;ax与ay则为在X、Y轴上的加速度Sx与Sy为X、Y轴上的坐标;Sxo、Syo为X、Y轴上的初始坐标。这样便可在推算出加速度后物体下一刻的位置:Sx=Sxo+Vx和Sy=Syo+Vy 只要物体的速度改变,都可以说该物体在做变速运动。产生加速度的原因是因为物体受到了外力的影响,而影响物体运动速度的外力可以说是千变万化,如空气阻力、摩擦力、重力等等。 3.3.2动量、重力与重力加速度 在计算机游戏中,玩家可能会运用不同的物体,例如汽车、飞机甚至于火车等等,这些物体都具有一定的质量。重量是一种力的表现,不过质量却不能代表重量,因为质量可以对加速度产生作用,在游戏中,有些时候为了追求其物体运动的真实感,这些物体就必须拥有某种虚拟的质量单位,简单的说,物体在进行运动的时候,它就必须要有一定的动量。动量就是让运功的物体停下来的难易程度的度量,是正在运动的物体的一种能力属性,而这种属性会与物体的质量和速度有关。动量=质量×速度。动量会因为物体的质量与速度而变化,而质量是因为物体所构成的物质来断定的,它的值是固定的,与物体的密度及体积相关。在游戏中,可以定义物体具有任意的质量单位,但如果想与现实生活中的物体有一样的动量反应,就可以为游戏中的物体定义出一系列的质量单位。又由动量守恒定律,物体在不受外力的作用或受外力和为零时,它的动量保持不变。根据动量守恒定律,如果两个物体相撞,在理想状况下,其动量守恒公式如:M1V1=M2V2 其中M1是物体1的质量,M2是物体2的质量,V1与V2是分别为物体的相对速度[6]。 在现实生活中,重力是一直存在的力,它是地球和周围物体之间的一种相互吸引的力量。由于地球质量非常大,所以便会感觉到是被地球吸引在它的表明上,不会飘到半空中,这里称为重力。在游戏的虚拟世界里,为了得到与现实生活类似的真实感,就要为游戏里的所有物体加上重力的影响。一般而言,重力是一种垂直于地面的力,当物体要向上运动时,重力则会在物体的运动方向上再加上一个向下的力。在无重力的情况下,球的运动路线的方程可以写成:x=x+Vx和y=y+Vy 其中x、y为地面单位;Vx、Vy为X和Y方向上的速度常量。而为了表现出游戏的真实度,在这里加入重力的影响,其公式可以将它写成:x=x+Vx和y=y+M 其中M为重力常量。这样便可以在游戏中表现出与现实生活一样的物体受到重力影响的物理现象了。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |