Welcome

首页 / 软件开发 / VC.NET / MFC游戏开发笔记七 游戏特效的实现(一):背景滚动

MFC游戏开发笔记七 游戏特效的实现(一):背景滚动2014-11-03有同学提到无限大地图的问题并且举了无尽跑酷游戏的列子,雾央在这里简单的和大家说一下自己的看法:

雾央认为,像Temple Run这种游戏,它们的无尽地图的实现是依靠逻辑生成的,并不是使用的很大的地图文件。它的地图可以依靠几种有限的图元,然后经过拼接组合来生成。仔细观察就可以发现,游戏中的场景总是似曾相识的。

另外,游戏中如果直接使用太大的地图,也是不合适的。一方面是占内存大,另外如果使用3D加速,图片都会被加载到显存中,太大的地图会很烧显存。

至于无限地图,雾央觉得可以将大地图分成小地图,当玩家处在某块区域中时,先将周围的小地图预先加载进内存中。事实上,这些都有很复杂的理论,如果有兴趣,建议可以查查资料。

最后,非常欢迎大家和雾央一起讨论游戏相关的东西。

by雾央 2013.7.18

大家现在玩游戏的时候,如果游戏的地图只有一个屏幕那么大,那么肯定会很没有意思,毕竟一眼可以看见全貌,随便走几下就到头了,失去了一种探索的乐趣,而且频繁的切换地图也是会大大降低游戏的流畅体验,PS:雾央一直期待着会出现那种没有场景切换的游戏,无缝拼接的超大地图一定感觉很爽,呵呵。

如果游戏中的地图比较大,超过了一个屏幕的大小,那么就会涉及到背景移动的问题了。现在游戏中背景滚动一般有两种方式,一种是冒险岛那样的游戏,人物基本上是会显示在画面中央,背景随着人物的移动而移动,另一种是像魔兽争霸那样,背景是随着鼠标的移动而移动,而鼠标是可以到处移动的,也就是不管人物在何处,都是可以看到任何地方的背景,当然这些游戏是有战争迷雾的,仍然和人物位置关联了起来。

不管是上面哪种方式,实现的原理都是一样的,无非一个以人物位置,一个以鼠标位置作为参考。

在今天的教程里,雾央会以前一种作为示例进行讲解,即背景随着人物的移动而移动。雾央相信,如果大家搞懂了这一种的话,那么第二种也不在话下,大家可以自己尝试着去实现这种效果。

在人物移动的时候,背景需要随着人物的移动而移动,而人物的移动方向有水平移动和垂直移动,两种实现的原理过程是一模一样的,因此雾央只讲解一下水平方向的移动。

先放出来几张贴图,让大家看看效果,呵呵。

主角仍然是上一节中那个骑着白马的少年

更多精彩内容:http://www.bianceng.cn/Programming/VC_NET/