这个问题听起来很奇怪,因为我真的不明白这怎么可能,但这里就可以了。我有一些我的 2D 游戏的碰撞代码,它在 Windows、Xbox、WP7、WP8 上运行良好。但由于某些奇怪的原因,当我将游戏作为 Windows 8 Metro 应用程序运行时,完全相同的代码不起作用。更奇怪的是,当我在 Surface 上运行相同的项目时,代码可以工作,但当我在 PC 上运行时,子弹只是直接穿过敌人。我认为发布代码没有任何用处,因为代码在我使用它的任何地方都是相同的,并且知道它的工作原理。如果有人知道这怎么可能,请告诉我。如果您希望我发布代码,请告诉我。
我将解释一下代码在做什么:
- 循环遍历所有玩家的子弹
- 循环遍历所有敌人
- 如果发生矩形碰撞
- 如果发生每像素碰撞
- 杀死敌人,移除子弹等。
- 如果发生每像素碰撞
- 如果发生矩形碰撞
- 循环遍历所有敌人
该游戏在我的 PC 上作为 XNA 游戏运行良好,这是我用来测试它作为 Metro 应用程序的同一台 PC。