Java 2d 鼠标点方向旋转

2023-12-13

到目前为止,我有一个java应用程序,我在其中画一个圆圈(玩家),然后在顶部画一个绿色矩形(枪管)。我有它,所以当玩家移动时,桶会随之移动。我希望它找到鼠标指向的位置,然后相应地旋转桶。有关我的意思的示例,请观看我发现的这个视频http://www.youtube.com/watch?v=8W7WSkQq5SU看看玩家移动鼠标时图像有何反应?

这是目前游戏的样子:

My Progress

那么我该如何旋转它呢?顺便说一句,我不喜欢使用仿射变换或 Graphics2D 旋转。我希望有更好的方法。谢谢


使用Graphics2D旋转法确实是最简单的方法。这是一个简单的实现:

int centerX = width / 2;
int centerY = height / 2;
double angle = Math.atan2(centerY - mouseY, centerX - mouseX) - Math.PI / 2;

((Graphics2D)g).rotate(angle, centerX, centerY);

g.fillRect(...); // draw your rectangle

如果您想在完成后删除旋转以便可以继续正常绘制,请使用:

Graphics2D g2d = (Graphics2D)g;
AffineTransform transform = g2d.getTransform();

g2d.rotate(angle, centerX, centerY);

g2d.fillRect(...); // draw your rectangle

g2d.setTransform(transform);

最好只使用Graphics2D无论如何,用于抗锯齿等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 2d 鼠标点方向旋转 的相关文章

  • 检查发送到网页的请求数

    我正在编写一个 Java 多线程应用程序 它可以访问不同 Web 服务器的数百万个 有时甚至数十亿个 URL 这个想法是检查这些 URL 是否给出有效的 200OK 响应或 404 其他代码 我如何知道我的程序是否不会在他们的服务器上造成高
  • jvm中本机代码如何转换为机器代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过一些文章说 jvm将字节码转换为机器码 jvm将字节码转换为本机代码 jvm 将字节码转换为系统调用 系统调用又由操作系统与硬件
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • Java中的文字赋值[重复]

    这个问题在这里已经有答案了 定义上有什么区别 double example 23 1d or double example 23 1 为什么long float double可以以l f d结尾 之间没有区别double example 2
  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • Glassfish:在部署期间修改 EAR 的部署描述符

    经过几天的搜索 尝试和摇头 我将这个问题发布到 SO 尽管它seems已经得到答复 这是场景 我有一个 EAR 应用程序 目前 包含一个 WAR 和一个 EJB 模块 EJB 模块使用 JPA persistence xml 并且一些无状态
  • MediaPlayer.create() 始终返回 null

    我以前用过媒体播放器 从来没有遇到过这个问题 每当我尝试使用 MediaPlayer create 时 该方法都会给我 null 并且我无法播放声音 我有什么遗漏的吗 public class Game extends Activity p
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 反应式 Spring Webflux REST 控制器内部重定向

    我正在为 spring 反应项目创建简单的控制器服务器 在设置重定向到另一个位置时 我在调用时发现错误http localhost 8080 There was an unexpected error type Internal Serve
  • selenium webdriver 中的多个程序执行不起作用

    Selenium WebDriver 中的多个程序执行不起作用 我编写了 1 个 testNG xml 文件和 2 个 java 类 我尝试从 xml 文件运行这两个 java 类 但这不起作用 XML代码
  • 两条腿的 OAuth 和 Gmail Atom feed

    我们正在尝试让 2 legged OAuth 与 Gmail Atom feed 一起使用 我们使用 John Kristian Praveen Alavilli 和 Dirk Ba lfanz 贡献的 Java 库 http oauth
  • Java 不可变对象 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在学习不变性的概念 据我了解 一旦创建对象 不可变对象就无法更改其值 但我不明白不可变对象的以下用途 They are 自动是线程
  • 如何列出hadoop hdfs中目录及其子目录中的所有文件

    我在 hdfs 中有一个文件夹 其中有两个子文件夹 每个子文件夹大约有 30 个子文件夹 最后 每个子文件夹都包含 xml 文件 我想列出所有 xml 文件 仅给出主文件夹的路径 在本地我可以这样做apache commons io 的 h
  • Java 验证日期为 yyyyMMddHHmmss

    我想在java中验证给定的日期格式为yyyyMMddHHmmss 状况 应符合格式 yyyyMMddHHmmss 它应该验证当前日期 它应该验证与当前小时有 3 小时或 3 小时差异的小时数 如果满足所有三个条件 Java 方法应返回 tr
  • 在 REST Web 服务中接受逗号分隔值

    我正在尝试接收 REST URI 中以逗号分隔值形式的字符串列表 示例 http localhost 8080 com vogella jersey first rest todo test 1 abc test 其中 abc 和 test
  • while 之后无法访问的语句[重复]

    这个问题在这里已经有答案了 我只是修改代码 在以下代码中出现错误 int x 1 System out println x x while true x System out println x x 错误在最后一行 我可以知道错误 错误 无
  • Struts2中的变量声明

    Struts2中如何声明变量并为该变量赋值 使用设置标签
  • 如何在 Log4j2 - JSON 布局中自定义或删除默认属性

    In Spring Boot 2我已配置的应用程序Log4j2 with JsonLayout像下面这样
  • Lucene/Hibernate 搜索锁定异常

    我使用 Hibernate Search 在 Web 应用程序上索引和全文搜索项目 没有问题 来自我的 pom xml
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException

随机推荐

  • 如何在输入文本字段中仅允许阿拉伯字符?

    我已经在这里搜索并找到了与这篇文章相关的类似帖子 但我还没有找到解决方案 我试过这个 text hello echo is arabic preg match p Arabic u text 我添加了 unicode 标志 但如果我添加任何
  • 即使对于简单的整数值,if 语句也始终返回 true

    我面临的问题是 对于每个值 我的 If 语句始终返回 true var radioValue parseInt input name packageRadio checked val alert radioValue 1000 500 1
  • 从 UIImagePickerController 获取 NSURL

    我试图获取通过 uiimagePickerController 选择的图像的文件路径 以便将文件上传到 Firebase 存储 func imagePickerController picker UIImagePickerControlle
  • 寻找最后一个符合条件的单元格(水平)

    我试图在 Google Sheets 中找到一种方法来根据某些条件返回最后一个单元格 我已包含下表 Jan Feb March April LATEST SALE group 1 sale sale no sale sale April g
  • 适用于 Java 和 Javascript 的兼容 AES 算法

    我需要使用 AES 算法加密 Java 应用程序中的一些值 并在应用程序的 Javascript 模块中解密相同的值 我在互联网上看到了一些示例 但兼容性似乎存在一些差异 就像下面的问题 javascript中的AES加密和java中的解密
  • 将绝对位置转换为相对位置

    是否可以将 DIV 位置从绝对位置更改为相对位置 以及从相对位置更改为绝对位置 DIV 应保留在同一位置 因为评论中的格式不起作用 我将在这里发布解决方案 object css position absolute top dy left d
  • Web 服务器的 .cgi 问题

    The code usr bin env python import MySQLdb print Content Type text html print print print print h1 Books h1 print ul con
  • sparql:为每个节点随机选择一个连接

    我有以下数据
  • 我有 DEVINST,我需要设备路径

    我正在尝试打开属于复合设备一部分的 WinUSB 设备 我已使用 cfgmgr32 找到了正确的子设备 并有其 DEVINST 编号 为了使用 WinUSB 打开它 我需要首先调用 CreateFile 为此我需要设备路径 设备路径如下所示
  • 如何使用 Web 服务访问 Sharepoint 中的子站点列表?

    在尝试使用 Web 服务 在 powershell 上 访问我的共享点网站时 我遇到了以下配置的问题 我的网站位于https sharepoint company tld sites siteid WSDL 是从以下位置获取的https s
  • 如何在 yii 中安装 bootstrap 扩展

    我是 yii 的新手 一直在尝试向 yii 添加 bootstrap 和 giiplus 扩展 但是 在将提取的文件添加到扩展文件夹并在 main php 中进行更改后 我似乎无法在显示主页时出现错误 我按照这个教程 http www cn
  • 拆分值对并使用 UDF 创建表

    我一直在尝试编写一个表值函数 它将值对作为参数并返回一个包含两列的表 下面是我想要做的函数签名 FUNCTION dbo ValuePairParser DelimitedValuePairs VARCHAR MAX Delimiter C
  • 将onclick添加到UI材质按钮

    我正在尝试将 onClick 事件处理程序添加到材质 ui 中 有时会调用它 有时不会 但是 它与常规按钮一起工作正常 handleClick event gt const value event target value console
  • 使用 Symfony2 将 xml 反序列化为对象

    我通过 API 收集一些 xml 格式的数据 并希望将其反序列化到对象列表中 我正在使用 Symfony2 并找到 JMSSerializerBundle 但我真的不知道如何使用它 我知道 Sf2 允许将对象序列化到数组 从数组反序列化 但
  • 按钮 OnClick 事件在 ASP.NET Web 表单应用程序中不起作用

    我跟着本教程创建以下 ASP NET Web 表单以将参数发送到存储过程并使用 Microsoft Report 显示结果 this is 不完整 产品 aspx file
  • 读者单子的目的是什么?

    reader monad 太复杂了 而且似乎没什么用处 如果我没记错的话 在 Java 或 C 这样的命令式语言中 读者 monad 没有等效的概念 你能给我一个简单的例子并稍微澄清一下吗 别害怕 reader monad 实际上并没有那么
  • MySQL以不同的排序顺序对多列进行排序

    我有一个表 其中包含三个数据类型字段date int and bigint 我想使用所有这三列对我的选择查询进行排序 我想将它们全部按降序排列 例如 Select From mytbl order by date desc intnum d
  • 通道功能 V1_3 是必需的,但不支持:在 Hyperledger Fabric 中制作我的第一个网络

    在 OSX 上启动我的第一个 Hyperledger 网络 我使用脚本安装了示例文件 curl sSL http bitlyURLThatStackoverflow won t let me us bash s 1 2 1 The ran
  • Python 打包:pyproject.toml 中的构建需求 VS setup_requires

    在有点复杂的Python中setup py配置 通常需要已经存在的其他库才能执行setuptools setup 就我而言 这将是setuptools gt 45 0 and cython gt 0 29 现在 我有两个选项来声明这些构建时
  • Java 2d 鼠标点方向旋转

    到目前为止 我有一个java应用程序 我在其中画一个圆圈 玩家 然后在顶部画一个绿色矩形 枪管 我有它 所以当玩家移动时 桶会随之移动 我希望它找到鼠标指向的位置 然后相应地旋转桶 有关我的意思的示例 请观看我发现的这个视频http www