- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我很难让我的砂矿面对一颗行星。我有玩家和星球之间的角度,我也有玩家当前所处的角度,现在我想要做的是让我的玩家面对星球,但有增量变化。 (我这样做是因为我希望我的砂矿机能够绕地球运行)
问题在于数学,我增加玩家旋转以匹配玩家和行星之间的角度但是因为角度在 0 到 360 范围内工作,我的玩家不会绕轨道运行,因为玩家旋转可能是 2 但是到行星的角度是 280 所以游戏会让玩家转身,抱歉解释不好。
有谁知道如何让我的玩家成功环绕我的星球?
这是我的代码:
double rotation = Math.toDegrees(Math.atan2(currentPlanet.pos[1]-currentPlayer.pos[1], currentPlanet.pos[0]-currentPlayer.pos[0]));
if(rotation < 0)
{
rotation += 360;
}
if(currentPlayer.rotation < rotation)
{
currentPlayer.rotation += 0.15*delta;
}
if(currentPlayer.rotation > rotation)
{
currentPlayer.rotation -= 0.15*delta;
}
最佳答案
问题是350°也是-10°。你想要更小的绝对值。
解决方案非常简单。使用模运算将您的角度转换为正确的范围。
/* returns angle x represented in range -180.0 ... 180.0 */
double clampAngle(double x) {
return (x%360.0+360.0+180.0)%360.0-180.0;
}
double rotation = Math.toDegrees(Math.atan2(currentPlanet.pos[1]-currentPlayer.pos[1], currentPlanet.pos[0]-currentPlayer.pos[0]));
double diff = ((rotation-currentPlayer.rotation)%360.0+360.0+180.0)%360.0-180.0;
if(diff>0)
turn right
else
turn left
abs(diff)
,你可能根本不想转。非常小。
关于java - 旋转玩家面对行星,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11486453/
有一个 servlet 代码用于将 excel/zip 文件从生产服务器下载到本地计算机。当我单击生产服务器上的“保存”或“打开”按钮时,它会抛出 ClientAbortException。相同的代码
在我的搜索页面中,默认情况下我使用 page=0 进行分页。并在 asyncData 方法中使用此参数调用 api。但不知何故,该值增加了一个。 所以这是我的网址,例如, http://localho
任何人都可以解释下面这段代码,我正在努力弄清楚。 order = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1357902468' pr
我正在 Java 平台上开发一个实时战略游戏克隆,我有一些概念性的问题关于放置在哪里以及如何管理游戏状态。游戏使用Swing/Java2D作为渲染。在目前的开发阶段,没有模拟,也没有人工智能,只有用户
这个问题在这里已经有了答案: Simple Linux Signal Handling (5 个答案) 关闭 8 年前。 我的应用程序已经配置了一个 SIGTERM 处理程序。例如: Signal(
我正在尝试创建一个会在几秒钟后淡入视野的文本,但我遇到了问题。淡入 View 效果很好,但文本在显示后几乎立即消失。其次我需要这个动画以延迟的方式工作,但是当我设置延迟时它似乎没有任何区别。延迟在早些
我正在尝试在我的项目 pubspec.yaml 中添加 flutter_svg: ^0.5.1 并面临以下问题。 依赖flutter_svg >=0.0.2 需要Flutter SDK版本>=0.3.
我在使用 Go 的 sync.Map 时遇到问题。以下是详细信息: 我创建了一个全局同步 map ,如下所示: var MySyncGlobalMap = sync.Map{} 在一个事件中,我用预期
12月9日,Apache 基金会针对一个名为 Log4Shell 的关键零日漏洞发布了紧急更新,这个在Log4j(一个用于各种Java应用的开源日志框架)中发现的漏洞被认定为CVE-2021-442
DNS 劫持作为最常见的网络攻击方式,是每个站长或者运维团队最为头疼的事情。苦心经营的网站受到 DNS 劫持后,不仅会影响网站流量、权重,还会让用户置身于危险之中,泄露隐私造成财产损失。 就是这样
我遇到过使用 Vision Framework 进行真人脸检测的问题。我在下面提到了苹果链接。 https://developer.apple.com/documentation/vision/tra
我是 MySQL 的新手,一直遇到一些错误,但我总能找到解决方案,除了这个,我不知道如何解决它。 如果变量“ue”为 1 或 0(一堆存在验证),则以下 MySQL 过程返回一个值。验证部分 (SET
我的应用程序出现此错误: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 我知道这是由于单个 dex 文
我必须对几乎在发送的每个请求中都使用 javax.faces.FormSignature 的应用程序进行负载测试。我正在使用这样的 xPath 提取器来获取 FormSignature 的值: /ht
屏幕上有 6 个开关控件。一次只能启用一个开关。如果第 5 个开关打开,则一个标签和一个文本字段应该可见或者隐藏。 当 5 开关从关闭变为打开并再次变为关闭时,我遇到了问题。标签和提交的文本应该被隐藏
当我将它应用于主体颜色或更改字体大小时,它工作正常,但当涉及到使元素 float 或 flex-direction 时,它根本不回应。尝试了所有可能的方法,只是不确定这里有什么问题:请检查代码,我认为
我希望我能得到一些关于如何解决这个问题的信息。我是 jenkins 的新手,正在尝试设置 jenkins 服务器。 启用 SSL 后,我无法登录 Jenkins。 Chrome 抛出错误 ERR_SS
我的项目是 EJB3 上的 java 项目,使用 Hibernate 和 Weblogic 服务器。 为了方便起见(据我所知,hibernate 很典型),一些实体包含循环依赖(父知道子,子知道父)。
@Autowired和@Resource都是Java Spring框架中的注解,用于实现依赖注入(DI)和控制反转(IoC)。它们的区别主要在以下三个方面: 源头不同 @Autowir
我正在使用下面的插件来自动管理补丁版本。 id "com.zoltu.git-versioning" version "3.0.3" 基本上,上述插件需要使用 v.major.minor 约定标记代码
我是一名优秀的程序员,十分优秀!