所以,我已经在一个游戏上工作了一段时间,但我遇到了一个障碍。我不知道该怎么做。这就是我的问题:
我有船,有前置轨道炮和两枚导弹。轨道炮只能在船前的直线上发射,但如果船在船前的任何地方,导弹都可以发射。问题是,这艘船在屏幕上旋转和移动。对于轨道炮,我需要检查屏幕上是否有船在船前面的任何地方。对于导弹,我需要检查是否有一艘船在船前250px以内,但不超过45度。
如果你们能提供任何帮助,我们将不胜感激。谢谢!
发布于 2012-03-05 14:13:36
对于轨道炮,你可以这样做:
public delegate void inRange();
public event inRange shipInRange;
public void checkRange() {
if(enemyShip.position.x < ship.position.x + 250 ||
enemyShip.position.x > ship.position.x + 250)
shipInRange();
}虽然我还没有测试它,但你应该检查一下enemyship是比ship快还是落后250个单位。这假设你只在x轴上移动你的船。虽然添加y轴很容易,但我也建议检查一下您面对的方向,然后为每个方向放置一个事件,并侦听您面对的那个方向。这可能是最简单的方法。
然后,您所要做的就是监听该事件,并在它发生时做您需要做的事情。导弹也是一样,但也要检查角度。
另外,如果您有一些示例代码,我也许能够为您提供更好的示例。
https://stackoverflow.com/questions/9560736
复制相似问题