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

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

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

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

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


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


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

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

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

你可能感兴趣的:(《游戏编程入门》学习笔记4——移动控制)