XNA游戏开发之滚动背景

摘要:

在很多游戏开发中角色的运动都是相对游戏背景而言的,也就是说我们通过移动游戏场景来给游戏角色带来一种运动效果,毕竟我们的游戏视窗是有限的,如果无止境的让角色运动肯定是不可行的,下面我们就一块看一下在XNA中如何制作滚动的背景。

内容:

在多数游戏开发的时候,特别是对于角色游戏,除了游戏角色本身的运动之外,更多的时候游戏给人的行动感觉是由游戏背景的移动造成的(我们平时看的动画片也是如此),毕竟游戏视窗是有限的,角色不可能超出游戏视窗而运动,它的运动范围也仅仅在整个游戏视窗内。这样一来我们就必须准备好整个游戏的背景,在游戏中动态改变它的位置。可是对于稍微复杂的游戏,其背景长度也是不可估量的(例如超级玛丽),此时我们就不可能一次加载所有的背景,此时我们怎么办呢?事实上对于这个问题我们通常是将整个背景做成可循环的,这有一点类似于我们地板设计,每个地板和另一地板的连接处花纹都是连续的;其次就是我们可以将游戏背景中的物体拆分开来,然后在游戏运行过程中进行动态组合。对于第二种情况我们暂且不管,我们今天主要讨论一下第一种情况。针对第一种情况假设我们有下面一副背景,在X方向它是可以无限循环显示的:

整幅背景图片

那么下面我们是不是就可以直接让整个图片循环显示就可了呢?答案是否定的。对于重复显示的背景我们直接整张图片加载起来是不切实际的,因为它的体积太大了。我们常用的做法是根据屏幕大小将图片分割成多张。例如上面的背景我们就可以切分成两张图片:

 

背景图片1
背景图片2

 

为了清楚的看到整个背景滚动形成的动画效果,我们给游戏添加一个角色:小鸟

下面是我们的完整代码:

 

其运行后的效果如下:

游戏截图

游戏运行动画

OK,代码比较简单,我也就不再过多解释,附上源程序:

download

知识共享许可协议 本作品采用知识共享署名 2.5 中国大陆许可协议进行许可,欢迎转载,演绎或用于商业目的。但转载请注明来自崔江涛(KenshinCui),并包含相关链接。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值