所以,我一直在做一个游戏,我遇到了麻烦。我不知道该怎么做。这是我的问题:
我有船,有前向导轨和两枚导弹。火炮只能在船前面直线射击,但如果船在船前锥形区域内的任何地方,导弹都会发射。问题是,船在旋转并在屏幕上移动。对于轨道炮,我需要检查屏幕上船的任何地方是否有船。对于导弹,我需要检查船前250px内是否有一艘船,但任何一侧的船都不超过45度。
你们给予的任何帮助都将不胜感激。谢谢!
答案 0 :(得分:2)
对于轨道炮你可以做这样的事情:
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轴很容易,但我还建议您检查您所面向的方向,然后为每个方向放置一个事件并聆听您所面对的方向。这可能是最简单的方法。
然后,您所要做的就是倾听该事件,并在事件发生时做您需要做的事情。导弹的情况也一样,但也要检查角度。
此外,如果你有一些示例代码,我可能会为你提供一个更好的例子。