- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个非常简单的游戏,只是为了更多地学习 Java。我确实有一些经验,但不多。该游戏应该类似于 Chicken Invaders。
所以这是我的问题。我创建了一个 Bullet 类,玩家点击空格时会发射子弹。在构造函数中,我需要一个角度作为 int 参数。然后我将其转换为弧度并使用 Math.cos 和 Math.sin 将其转换为子弹应在每个轴上移动的方向:
public Bullet(int x, int y, int angle) {
super(x, y);
double rad = Math.toRadians(angle);
this.dx = Math.cos(rad) * speed;
this.dy = Math.sin(rad) * speed;
}
速度是一个静态的最终值。
当我更新项目符号时,我只是将 dx 和 dy 添加到 x 和 y 变量。
当玩家射击时,我创建了 3 颗子弹,角度分别为 270、265 和 275,都从同一个地方开始:
GamePanel.bullets.add(new Bullet(x + (width - Bullet.width) / 2, y + 5, 270));
GamePanel.bullets.add(new Bullet(x + (width - Bullet.width) / 2, y + 5, 265));
GamePanel.bullets.add(new Bullet(x + (width - Bullet.width) / 2, y + 5, 275));
我期望的是 3 颗子弹,一颗直线向上,另外两颗稍微向右或向左,射速相同,但左边一颗比右边一颗稍微偏一点:
我不知道为什么左边的和右边的不一样。我觉得我错过了一些非常明显的东西,但我无法找到它。
最佳答案
问题是 x 和 y 是整数。忘了那个:)基本上,我将 dx 和 dy( double )添加到 x 和 y(整数)。由于 Java 将 double 转换为整数的方式,负数的舍入方式有所不同,这导致 x 更偏向左侧。
将 x 和 y 更改为自身的两倍(然后在绘制时将它们转换为整数)解决了这个问题。
谢谢 RealSkeptic 和大家帮助我 :D
解决了!
关于java - 角度变成弧度然后变成dx。不像我想的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33105021/
我无法从主题做一个场景。 我安装了 DirectX 2009 年 3 月 9 日的 SDK,它是 9,“sub”-version c,但是“sub-sub”-version 是 41,所以库 (d3d
我的团队和我一直在努力解决我们在进入 Beta 版之前尝试混淆我们的 Android 应用程序时遇到的异常。 我们得到的异常是: Error:Uncaught translation error: c
我在将同事的 Android 源代码编译为 APK 时遇到问题。这是控制台中显示的错误 :app:transformClassesWithDexForDebug AGPBI: {"kind":"err
我最近在尝试为 Android 构建 apk 时遇到了我的 Azure CI 管道问题。 我收到以下错误: Build-tool 31.0.0 is missing DX at /usr/local/
我的 HelloWorld.java 中有以下代码: public class HelloWorld { public static void main(String[] args) {
我的 Android 应用程序使用了大量非常重要的外部库。这些库都是用 Java 编写的,并简单地添加到构建路径中。 从 Eclipse 中启动应用程序需要很长时间,大约 5 分钟。这非常令人沮丧!
所以我的问题有点简单。我有一个顶点缓冲区,我用创建它 pDevice->CreateVertexBuffer( m_dwCount * sizeof(CUSTOMVERTEX)
eclipse 中有没有办法将参数传递给 dx(--no-optimize 等)以提高 dx 处理速度? 最佳答案 创建少于 300 行的方法,在我创建了一个 2000 行的方法之前,在 Dx 处理中
有没有关于“dx”的文档? 我特别想知道 --core-library 选项的作用。 最佳答案 什么是“dx”工具? dx 工具将 Java 类文件转换为 *.dex(Dalvik 可执行文件)* 文
我目前正在为x86汇编学习考试。 我没有太多运气来搜索“:”,这太常见了标点符号:/ IDIV - Signed Integer Division Usage: IDIV src Modifies f
我有一个输出 jcamp-dx (*.jdx) 文件的仪器。有我可以用来查看数据的软件,但我宁愿用它做一些其他事情,比如在网页上绘制它,这在我必须访问数据的软件中是不允许的。 数据文件是纯文本,但它们
我正在尝试根据是否选中复选框来设置按钮的启用/禁用。下面是我的 javascript 和 asp 代码,它不起作用。我不确定是否根本没有调用该函数,或者我禁用按钮的方式有问题。 function O
我需要从命令行构建我的 android 应用程序(我正在使用 Java7 编译代码),但是当我尝试创建 dex 文件时出现以下错误 trouble processing: bad class file
我尝试使用这段代码缩放矩阵: D3DXMATRIX & rMatrix = m_Matrices[i]; D3DXMatrixScaling(&rMatrix, 2.0
最近我又回到了 C++ 中。我已经离开 C++/CLI 而使用 C# 至少一年了,我有点生疏了。我正在查看适用于 Windows 8 的 Direct3D 应用程序的基本示例,但找不到任何可以解释
当我在 eclipse ADT 中运行 android 应用程序时,“Dx 写入输出时遇到问题:已经准备好”出现在控制台中,然后应用程序照常运行。出现此消息的原因是什么?我该如何解决? 最佳答案 我遇
我想使用 C++ 进行插件开发。在开发 VST 或 DX 之间犹豫不决。有什么考虑?我知道有些主机更容易支持一种或另一种格式(Cubase:VSTs,Cakewalk:DXs),但这就是我所知道的。
我正在尝试根据类型可视化一些评分,但是我很难找到如何根据类型对系列进行分组。 图表选项如下: $scope.chartOptions = { dataSource: data,
如何为 d/d(n*x) 运算符生成模板? 我正在编写一个需要计算图像中线导数的程序。如果我们想计算关于 d/dx 的最简单的导数近似,我们可以运行以下操作: diff[x] = -1.0 * ima
我使用 dev extreme Angular 应用程序中的 UI 框架。 在文档中我找到了如何设置 focus 它说使用 method focus() 但是DxTextBoxComponent中没有
我是一名优秀的程序员,十分优秀!