将对象放在XNA中的滚动背景上

时间:2010-02-22 04:25:29

标签: scroll xna background

如何放置仅在背景滚动到特定点时才出现的对象?

示例 - 我有这个长图像,使用上面的技术保持滚动。但是,在滚动到图像的一部分后,我想在那里添加一个平台。我该怎么做?

1 个答案:

答案 0 :(得分:3)

通常,您可能需要将对象的位置保存在文件中,然后在级别的开头加载该文件(假设您正在制作某种平台游戏)。您可以通过创建包含平台的所有相关信息(位置,大小,纹理等)的类或结构,然后使用XML序列化将这些类/结构的数组写入文件来实现此目的。

然后,您的关卡加载程序将加载和反序列化关卡数据,这最终会成为关卡中所有对象的列表(例如平台)。现在您已经拥有了平台在内存中的位置,您可以通过几种不同的方式选择如何将它们带到屏幕上。

  1. 始终绘制所有对象(平台),无论它们是否在摄像机视图中。如果您的级别不包含大量对象,则实现起来很简单。
  2. 仅绘制相机视图中的那些。在不知道如何实现水平滚动条的情况下,很难为此部分提出建议。无论您目前有什么机制来确定要显示的背景部分的边界,都可以用来确定要绘制的对象。
  3. 我正在研究一种现在垂直滚动的游戏,我需要一种方法来做类似的事情:将对象放在一个关卡中,当背景滚动到它们时让它们出现。我使用了TorqueX 2D(免费引擎二进制文件,如果你付费开发XNA)和它的2D场景编辑器很容易设置它。我让我的相机向上滚动,背景保持不变。当它到达XML级别文件中定义的对象位置时,它会生成级别中的对象。