网站大量收购闲置独家精品文档,联系QQ:2885784924

第6讲 游戏物理现象.pdf

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows 程序设计(面向游戏) 6 6 第66章 游戏物理现象 6.1 6.1 66..11 物理运动 将真实世界中的物理现象呈现于游戏中,对于游戏设计来说是相当重要的一个课题,例 如物体移动、碰撞或者物体爆破然后碎片飞散等,都属于物理现象。程序中要制作这些真实 世界中的物理现象的效果,需要用到一些基本的物理概念与数学计算。 这一节里,将从各种物理运动开始,说明游戏中物理效果的运用时机与设计方式。 6.1.1 6.1.1 66..11..11 匀速运动 物体会移动,那这个物体一定具有“速度”,速度是物体在各个方向上“速度分量”的 合成。以一个在2D平面上移动的物体而言,假设它的移动速度为V,X轴方向上的速度分量 为Vx,Y轴方向上的速度分量为Vy,那么V与Vx、Vy间的关系如图6-1所示。 图6-1 匀速运动的原理就是指物体在每一个时刻的速度都是相同的,即Vx与Vy都保持不变。 设计2D平面上物体的匀速运动时,在每次画面更新时,利用物体速度分量Vx 与 Vy的值来计算下次物体出现的位置,产生物体移动的效果。下面将这样的原理以简单 的计算公式表示为: 下次X轴位置=现在X轴位置+X轴上速度分量 下次Y轴位置=现在Y轴位置+Y轴上速度分量 看过了关于等速度运动的原理与程序中设计的方法之后,下面就来设计一个物体在 2D平面上移动的范例程序。 ch6_1 ch6_1 范例cchh66__11 设计小球在显示窗口中进行等速度运动,当碰到窗口边缘时会反弹回来并以反方向 运动的程序。 程序代码:全局变量声明 1 //声明全局变量 2 HINSTANCE hInst; 3 HBITMAP bg,ball; 4 HDC hdc,mdc,bufdc; 5 HWND hWnd; 6 DWORD tPre,tNow,tCheck; 7 RECT rect; 8 int x=50,y=50,vx=20,vy=20; 程序说明 (1)第7行:用来存储内部窗口区域的矩形结构。 150 Windows 程序设计(面向游戏) (2)第8 行:变量“x”和“y”为窗中小球的显示(贴图)坐标,“vx”和“vy” 则是小球在X轴与Y轴上运动的速度分量。 程序代码:InitInstance() 1 //****初始化函数*********************************************** 2 3 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) 4 { 5 HBITMAP bmp; 6 hInst = hInstance; 7 8 hWnd = CreateWindow(canvas, 小球弹性碰撞 , WS_OVERLAPPEDWINDOW, 9 CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); 10 11 if (!hWnd) 12 { 13 return FALSE; 14 } 15 16 MoveWindow(hWnd,10,10,600,450,true); 17 ShowWindow(hWnd, nCmdShow); 18 UpdateWindow(hWnd); 19 20 hdc = GetDC(hWnd); 21 mdc = CreateCompatibleDC(hdc); 22 bufdc = CreateCompa

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档