51CTO-星际迷航.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51CTO-星际迷航

星际迷航 学生:陶然 学号:070521047 摘要:本文分析了飞机在飞行过程中随着鼠标移动的飞行轨迹,碰撞的物理显现,运用游戏画面绘制贴图、游戏输入消息处理、游戏动画技巧、游戏物理现象设计原理以及人工智能技术,利用Microsoft Visual C++ 6.0开发了星际迷航这款游戏。实验结果表明了 关键字: 绘制贴图 消息处理 人工智能 VC++ 1.引言 2D游戏开发是游戏开发领域中一个不可或缺的重要分支,绝大多数休闲游戏与动漫游戏都是使用2D游戏技术开发实现的。 ”BackGround.bmp”)如图3-1所示读取到内存中并绘制到屏幕上。 图3-1 首先运用LoadImage()函数从文件中加载位图。 BackGround=(HBITMAP)LoadImage(NULL,BackGround.bmp,IMAGE_BITMAP,800,600,LR_LOADFROMFILE); 建立一个与窗口DC兼容的内存DC hdc = GetDC(hWnd); mdc = CreateCompatibleDC(hdc); 建立一个与窗口DC兼容的缓冲DC bufdc = CreateCompatibleDC(hdc); bmp = CreateCompatibleBitmap(hdc,800,600); 内存DC使用位图对象 SelectObject(bufdc,BackGround); 将内存DC的内容贴到窗口DC中完成画面的显示 BitBlt(mdc,0,0,800,w,bufdc,0,600-w,SRCCOPY); BitBlt(mdc,0,w,800,600-w,bufdc,0,0,SRCCOPY); 运行结果如图3-2 3.2星际迷航动画 3.2.1星际迷航角色动画(飞机) 为了实现鼠标控制飞机飞行,当鼠标一移动,获取鼠标X的坐标,在消息处理函数中加入下列代码: x = LOWORD(lParam); 如果飞机的X坐标大于窗口临界值,则X等于临界值,若飞机的X坐标小于0,则将X设定为0,加入下列代码: if(x 730) x = 730; else if(x 0) x = 0; 同理,获取Y坐标,加入如下代码: y = HIWORD(lParam); if(y 480) y = 480; else if(y 0) y = 0; 运行结果如图3-4和3-5 图3-4 图3-5 3.2.2计算机角色动画(石头) 运行结果如图3-6 图3-6 运行结果如图3-7 为了实现游戏石头下落效果,定义一个速度VY,并计算Y轴坐标,并不停的往下贴,加入如下代码: vy=15; Sy += vy; 图3-7 图3-8 3.2.3星际迷航背景动画(动的背景) 为了实现背景动画的滚动效果,设定一个间隔时间tPre以及图片宽度W代码实现如下 BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY); tPre = GetTickCount(); w +=10; if(w=600) w = 0; 图片的随着时间Y坐标不断增加10,如果当整个图片600的话,则将图片重新滚动一遍。 4、物理现象 为了实现整个游戏的碰撞效果的物理现象,首先加载游戏的石头位图 baozha0=(HBITMAP)LoadImage(NULL,baozha0.bmp,IMAGE_BITMAP,316,632,LR_LOADFROMFILE); baozha1=(HBITMAP)LoadImage(NULL,baozha1.bmp,IMAGE_BITMAP,316,632,LR_LOADFROMFILE); baozha2=(HBITMAP)LoadImage(NULL,baozha2.bmp,IMAGE_BITMAP,316,632,LR_LOADFROMFILE); baozha3=(HBITMAP)LoadImage(NULL,baozha3.bmp,IMAGE_BITMAP,316,632,LR_LOADFROMFILE); 5、实验结果及分析 6、结论 参考文献

文档评论(0)

liudao + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档