什么是卷屏 对大多数的动作游戏或冒险游戏来说,游戏场景通常都会很大,而无法在游戏舞台上完全显示出来,所以如果只是靠游戏人物在舞台中移动,那么它的活动范围会被局限在狭小的舞台中。 那么怎么解决这个问题呢?对,移动游戏场景!俗话说的好,树欲静而风不止,运动是相对的,背景的移动会使静止的游戏人物产生移动的效果,而场景的移动是不 受限制的,我们的视角只能看到舞台大小的场景,随着场景的任意移动,游戏人物也就可以移动到场景的任意位置了,这就是我们所说的卷屏! 下面我们来看一下,AS3中卷屏是怎么实现的吧! 通常情况下,我们会在x轴方向和y中方向分别为游戏人物char定义速度vx和vy,然后在ENTER_FRAME事件或者TIMER事件中通过递增速度值实现人物移动,代码如下:
为了解决这个问题,我使用内边界卷屏。 内边界卷屏 在游戏人物未到达舞台边界之前,直接移动游戏人物对象,当游戏人物到达舞台边界时,停止移动游戏人物并将其定位在边界位置,然后反向移动游戏场景,同样可 以产生游戏人物移动的效果。但是真正这样实现起来,你又会发现新的问题,对于未进入舞台部分的场景,我们是无法预知的,随着场景的移动,可能会出现一个苹 果,也有可能是一个敌人,而游戏人物恰好是处在舞台边界位置,对于即将出现的对象,它只能既来之则安之,听天由命,这是另游戏玩家很不爽的一种设计,如果 接着来三个敌人,游戏人物就必死无疑了(如下图)。
理论上是讲通了,下面我们来一步一步实现这个算法。 2. 此时游戏人物移动至左边界并停止移动,而我们看到的移动是由场景的反向移动产生的错觉。 3. 当游戏场景移动到可见区域边界(即舞台)时,场景停止移动,并将内边界的左边界扩展到可见区域的左边界位置,此时游戏人物可以继续向左移动。 4. 当游戏人物移至内边界的右边界时,在第3步中扩展的左边界会恢复成初始状态。 其他几个边界的计算方法一次类推。 如果你只定义左右内边界,可以实现横向卷屏,比较经典的例子就是超级玛丽。如果上下左右四个内边界都定义一般会在俯视视角游戏中应用,如红色境界! 好了,就写到这里吧,如果你对我的讲解还是感觉很模糊的话,可以查阅《Foundation game design with flash》一书中的第6章。另外透露一个小消息,本书图灵已经翻译的差不多了,估计再有一两个月就能出版了吧!
|
【游戏基础】内部边界卷屏
最新推荐文章于 2023-10-20 01:11:07 发布