如何在XNA中实现类似Worms游戏的可破坏地形?

18

我想为一个游戏想出一个原型。这个游戏的理念是玩家挖掘地面,创建隧道并寻找宝藏。

我想创造“蠕虫风格”(worms style)的地形,并且为玩家在隧道中漫游和跳跃时提供碰撞检测。可以在以下图片中看到这种动态地形的示例。 Example 1 Example 2

我的问题是,实现这种可破坏地形最好的方式是什么?我正在使用XNA游戏工作室。


1
我认为破坏是按像素基础进行的,同时伴随着CD。我不确定XNA是如何工作的。 - user166390
引擎无关:https://gamedev.stackexchange.com/questions/6721/implementing-a-2d-destructible-landscape-like-worms - Ciro Santilli OurBigBook.com
2个回答

7

4

有两种可能性,任何一种都可以实现,但取决于XNA的易用程度:

  • 像其他人建议的那样,使用位图掩码。您保留所有“地面”像素和所有“空气”像素的位图。如果有重力,角色不能穿过地面,而可以穿过空气。
  • 矢量几何。您从矩形“地面”开始,并保持“删除”的地面列表,该列表创建了空气。这种几何形状非常容易编辑:只需将圆形或类似形状附加到列表中,并更新图形即可。我不知道XNA是否具有矢量和形状功能;但是使用这两个东西创建几何形状应该很容易,并稍后应用纹理或类似物。此外,通过保留渲染景观的缓存版本并仅更新新添加的“空气”的边界框的缓存,可以轻松优化此解决方案。但是,这种解决方案需要更多的数学知识。

我的原始想法是尝试矢量几何。不过,将几何图形三角化以便使用图形卡绘制它有点麻烦。 - Spoonman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接