2010-02-22 43 views
0

如何放置仅在背景滚动到某个点时出现的对象?将对象放置在XNA的滚动背景中

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

回答

3

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

然后,您的级别加载器将加载和反序列化级别数据,最终将成为级别中所有对象(例如平台)的列表。现在你已经在内存中拥有你的平台的位置,你有几个不同的选项可以让他们进入屏幕。

  1. 无论它们是否在相机视图中,都会绘制所有对象(平台)。如果你的关卡不包含很多对象,这将很容易实现。
  2. 仅绘制相机视图中的图像。在不知道你是如何实现水平滚动条的情况下,很难为这部分提出建议。无论您目前需要确定显示背景的哪一部分的边界,都可以用来确定要绘制哪些对象。

我正在研究一种现在垂直滚动的游戏,我需要一种方法来做类似的事情:将对象放置在关卡中,并在背景滚动时显示它们。我使用了TorqueX 2D(如果您为XNA开发了免费的引擎二进制文件)以及它的2D场景编辑器,可以很容易地设置它。我有相机滚动,背景保持不变。当它到达XML级别文件中定义的对象位置时,它会生成关卡中的对象。

+0

谢谢Venesectrix。我想我应该做的事情一直是使用瓷砖地图(或类似的东西)。我实际上在XNA论坛上发布了这个问题(http://forums.xna.com/forums/t/48209.aspx),答案也是有效的。但是,老式的瓷砖地图一路:)谢谢你的答案! – DMan 2010-02-23 04:17:05