所以,我开发游戏已经有一段时间了,但遇到了障碍。我不知道该怎么做。这是我的问题:
我有一艘船,配有前向轨道炮和两枚导弹。轨道炮只能在舰船前方的直线上射击,但如果舰船位于舰船前方圆锥体中的任何位置,导弹就可以发射。问题是船在屏幕上旋转和移动。对于轨道炮,我需要检查屏幕上船前面的任何地方是否有船。对于导弹,我需要检查船前方 250 像素内是否有一艘船,但与两侧的夹角不超过 45 度。
如果你们能提供任何帮助,我们将不胜感激。谢谢!
最佳答案
对于轨道炮,你可以这样做:
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 轴很容易,但我还建议检查您面向的方向,然后为每个方向放置一个事件并聆听您面向的方向。这可能是最简单的方法。
然后您所要做的就是监听该事件,并在事件发生时执行您需要执行的操作。导弹也是如此,但也要检查角度。
此外,如果您有一些示例代码,我也许可以为您提供更好的示例。
关于c# - Sprite 定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560736/