《游戏编程入门》学习笔记4——移动控制

通过修改一个烟花动画程序,实现了键盘控制动画角色的左右移动。在实践中解决了移动速度过快、动画变化缓慢等问题,并探讨了精确控制游戏循环周期的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        接下来要实现图片的移动。

在第六章第二个程序的源代码上修修补补来试验一些简单的想法。这是一个不断绽放着的烟花动画程序,本质是周期性的将一系列图片集(汇集在一张大图上,draw函数可每次绘制其中一部分,也就是我们需要的一帧)的一帧依次轮流绘制一遍。
        Copy第五章篮子接炸弹游戏的部分代码来实现键盘输入检测,并根据输入改变draw函数的位置参数。这样便轻松实现了键盘控制左右移动。

        以上仅仅是理论介绍,实际操作中遇到这么几个问题:
        1,移动速度过快。
        基本按四下就移动完整个屏幕了,仔细观察,发现和按键的时间还是息息相关的,快速短暂的按下键盘能使移动距离稍微变短,这说明原因还是出自Gamerun()循环速度过快。
        这时我借鉴animate()函数中的延时方法,不断取GetTickCount()值,等延时一段delay值后再作相应移动。

        虽然移动速度降下来了,但是第二个问题出来了。


        2,动画的变化速度也变得很缓慢。
        稍加分析,发现是因为两个延时函数公用了同一个starttime参数导致的bug。分作两个,便解决了。


        3,无论怎么降低延时值,左右移动的速度始终无法提升到理想程度。
        这是个很奇怪的现象,猪哥一时还未分析出原因,只能临时用增加每次移动的距离来解决了。

        经实际演练,我发现如何准确的控制Gamerun()的周期是迟早要面对的问题 ,不然人物的移动速度还有其他相关元素根本无法精确设置,这个书里提到过一次,待猪哥找找后面几章内容看能不能找到解决方案。

        不管怎样,现在初步实现了控制一个动画的移动。这样离“简单的人物移动”目标又迈进一大步。

本书手把手教大家写写游戏,是一本非常不错的游戏入门教材,资源内有教材pdf格式的电子书,还有教材的光盘资料(必不可少),因为只允许上传50M以下的,所以就传了六个文件,这是第 2 部分 目录: 第1部分 入门 第1章 学习开发游戏的基础知识 第2章 创建游戏引擎 第3章 学习绘制基本图形 第4章 绘制图形图像 第2部分 与游戏玩家交互 第5章 使用键盘和鼠标控制游戏 第6章 示例游戏:Brainiac 第7章 使用游戏杆改进输入 第8章 示例游戏:Light Cycles 第3部分 在游戏中使用了画面 第9章 使用子画面动画移动对象 第10章 管理子画面 第11章 示例游戏:Henway 第4部分 使用声音和音乐 第12章 播放数字声音效果 第13章 播放MIDI音乐 第14章 示例游戏:Battle Office 第5部分 高级动画 第15章 实现了画面外观动画 第16章 创建子画面背景 第17章 示例游戏:Meteor Defense 第6部分 让游戏拥有大脑 第18章 教游戏思考 第19章 示例游戏:Space Out 第7部分 增添游戏的趣味性 第20章 使用闪屏增添游戏的活力 第21章 使用演示模式展示游戏 第22章 记录高分 第8部分 附加练习 第23章 使用滋动背景更改远景 第24章 示例游戏:Stunt Jumper 配套光盘上的附录 附录A 选择游戏开发工具 附录B C++编程入门 附录C Windows游戏编程入门 附录D 创建游戏图形 前言: 像Junkyard Wars和American Chopper这样的电视节目获得了极大的成功,在很大程度上是因为它们揭示了有趣的机器(例如潜水艇、破城槌以及摩托车等)构造背后的创造性过程。自从有了电视以来,教育性的电视节目就一直存在,但是直到最近,教育才进入了正统娱乐的领域。这些节目之所以获得成功,是因为它们展示了在头脑中产生一个想法并将它们转化为现实是多么有趣和具有挑战性。是的,它们是教育性的,但是更重要的是,它们很有趣。本书中有同样有挑战性的乐趣在等待着读者,你将学习如何构建自己的视频游戏。不,你不能轰鸣着引擎骑着自己的游戏在街道上飞速行驶,但是你可以与朋友和家人分享,炫耀自己新获得..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值