我正在写一个用户正在拥有宇宙飞船的游戏,需要“杀死”一些试图杀死他的敌人。
我有一个“纹理2d”用于用户的宇宙飞船图片,子弹图片和敌人图片
我想知道,在用户向敌人射击子弹后,我怎样才能检查子弹是否伤害了敌人?
换句话说 - 什么函数检查一张图片是否“覆盖”(甚至部分)另一张图片?
日Thnx! :-)
答案 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坐标。您还应该知道每张图片的尺寸。
您可以计算图片的边界框,以及是否存在任何共同点。