如何检查两张图片是否“互相碰撞”?

时间:2011-03-16 08:58:56

标签: graphics c#-4.0 xna xna-4.0 image


我正在写一个用户正在拥有宇宙飞船的游戏,需要“杀死”一些试图杀死他的敌人。
我有一个“纹理2d”用于用户的宇宙飞船图片,子弹图片和敌人图片 我想知道,在用户向敌人射击子弹后,我怎样才能检查子弹是否伤害了敌人?
换句话说 - 什么函数检查一张图片是否“覆盖”(甚至部分)另一张图片?

日Thnx! :-)

3 个答案:

答案 0 :(得分:1)

请查看“2D碰撞检测”主题。当您使用XNA时,以下网站应该给您一个良好的开端: http://www.progware.org/Blog/post/XNA-2D-Basic-Collision-Detection.aspx

答案 1 :(得分:1)

基本上你需要检测两个非透明像素何时重叠,但为了防止不必要的计算,你首先要检查你的船和敌舰的边界框是否重叠(因为像素不会重叠,如果边界框没有)。

Riemers.net有一个很好的教程。这是来自应用中心的每像素碰撞检测good sample project

答案 2 :(得分:0)

我不知道有任何预先存在的API函数可以做到这一点,但是自己实现它将是一个很好的练习。

您应该知道每张照片原点的x / y坐标。您还应该知道每张图片的尺寸。

您可以计算图片的边界框,以及是否存在任何共同点。