首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sprite目标

Sprite目标
EN

Stack Overflow用户
提问于 2012-03-05 09:49:14
回答 1查看 130关注 0票数 2

所以,我已经在一个游戏上工作了一段时间,但我遇到了一个障碍。我不知道该怎么做。这就是我的问题:

我有船,有前置轨道炮和两枚导弹。轨道炮只能在船前的直线上发射,但如果船在船前的任何地方,导弹都可以发射。问题是,这艘船在屏幕上旋转和移动。对于轨道炮,我需要检查屏幕上是否有船在船前面的任何地方。对于导弹,我需要检查是否有一艘船在船前250px以内,但不超过45度。

如果你们能提供任何帮助,我们将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-05 14:13:36

对于轨道炮,你可以这样做:

代码语言:javascript
复制
 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轴很容易,但我也建议检查一下您面对的方向,然后为每个方向放置一个事件,并侦听您面对的那个方向。这可能是最简单的方法。

然后,您所要做的就是监听该事件,并在它发生时做您需要做的事情。导弹也是一样,但也要检查角度。

另外,如果您有一些示例代码,我也许能够为您提供更好的示例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9560736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档