- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【VisualC】游戏开发笔记二十游戏基础物理建模(二)重力系统的模拟
【【CC++++游游戏戏编编程程】】游游戏戏开开发发梦梦想想的的集集散散地地——毛毛星星云云 ((浅浅墨墨))的的专专栏栏
愿愿尽尽以以绵绵 之之力力,,薪薪火火相相传传游游戏戏开开发发的的信信仰仰与与梦梦想想,,复复兴兴国国产产单单机机游游戏戏。。
【【VViissuuaall CC++++】】游游戏戏开开发发笔笔记记二二十十 游游戏戏基基础础物物理理建建模模 ((二二)) 重重力力系系统统的的模模拟拟
分类: 【Visual C++】游戏开发 【Visual C++】 2012-05-06 02:05 18772人阅读 评论 (46) 收藏 举报
游戏c++nullimagecallback编程
本系列文章由zhmxy555 (毛星云 )编写 ,转载请注明出处。
http // /zhmxy555/article/details/7496200
作者 :毛星云 邮箱 : happylifemxy@ 欢迎邮件交流编程心得
在笔记十八里面我们介绍了基础的匀速与加速运动的物理建模 ,基本的物理建模导论和前续相关知识的讲解请移步
【Visual C++】游戏开发笔记十八游戏基础物理建模(一) 匀速与加速运动。
本节知识相当于该节知识的一个拓展 ,模拟生活中的重力系统 ,它可以为我们开发的游戏提供一个近乎逼真的重力模拟系统 ,也
可以为我们游戏引擎开发中物理系统相关代码的书写提供一定的思路。
重力模拟实现起来其实非常简单 ,我们都知道 ,重力的表现形式其实就是一个大小约等于9.8米每二次方秒 ,方向垂直地面指向
地心的加速度。且 由于X轴方向的速度不受重力影响 ,所以我们只要将物体的速度进行正交分解 ,处理竖直向下的Y轴方向即
可。
下面用本节的实例中的实现重力模拟的代码来具体说明 ,这一节着重讨论重力 ,所以演示时暂时先忽略下坠时的空气阻力与触
地时的摩擦力。
这是一个平抛运动 ,小鸟将具有水平方向的初速度 ,且受到向下的重力 ,即小鸟具有向下的加速度 ,若碰到地面就会进行反弹 ,
速度反向。
首先我们定义下坠物体的初始坐标与初始速度 ,初始横坐标x =0 ,初始纵坐标y=100 ,初始水平方向速度vx =6 ,初始竖直方向
速度vy=0 ,重力加速度gy=3 (这里为了方便演示 ,我们设置为3 )
即
int x=0,y=100,vx=6,vy=0,gy=3; //初始横坐标x=0,初始纵坐标y=100,初始水平方向速度vx=6,
//初始竖直方向速度vy=0,重力加速度gy=3 (这里为了方便演示,我们设置为3)
然后我们在 MyPaint ()函数中实现具体的重力环境模拟 :
x += vx; //计算X轴方向贴图坐标,每调用一次MyPiant (),x坐标就加上一个恒定不变的vx,相当于匀速运动
vy = vy + gy; //计算Y轴方向速度分量,vy随着每一次MyPiant ()函数的调用就加上一个gy (重力加速度)
y += vy; //计算Y轴方向贴图坐标,每调用一次MyPiant (),y坐标就加上一个刚改变过后的vy,相当于加速运动
//判断是否触地,如果触碰到窗口边界,vy调整为相反方向
if(y = rect.botto -60)
{
1
y = rect.botto - 60;
vy = -vy;
文档评论(0)