开发2D游戏,如何让角色动起来?
首先,游戏本质上是在播放动画。而动画形成的原因是,因为人眼具有视觉暂留的特性。
所谓视觉暂留就是在看到一个物体后,即使该物体消失,也还是会在眼中留下一定时间的持续影像。
所以想让角色动起来,只要按照一定的时间显示角色的不同动作图片就可以了。
先准备一张图如下,这是梦幻西游龙太子的动作图。(图片来自网络,侵删)
可以看出,这张图8行8列,每一行代表一个方向,包括上下左右,左上,右上,左下和右下。如果我们想让龙太子跑起来,只要按顺序播放就可以。
首先按照之前的方法,将图片改造一下,这样就可以只显示角色部分了。
OK,素材已经有了,现在加载图片并显示即可。
这里需要注意的是,BitBlt这个函数最后两个坐标表示的是图片的开始位置,而不是显示在窗口的位置,因为我们人物的所有状态都在一张图片中,所以我们每次只需要显示图片的一小块即可。
【实现步骤】
0x1. 加载图片,使用LoadImage即可
0x2. 初始化相关变量,人物宽高(可以通过图片大小除人物个数),当前帧
0x3. 刷新帧(+1即可,超过8时重置为0)
0x4. 显示图片
最后在加上背景图,实现效果如下: