我正在编写我的第一个

java游戏,到目前为止:

我做了一个可以用WSAD走动的矩形,他总是面向鼠标指向的地方.此外,如果你点击,他会射击你的鼠标指向的子弹(并且子弹旋转以面向那个方向).我也制造了跟随你的敌人,他们旋转面对你的角色.我遇到的问题是我写的碰撞检测只是在旋转之前检测物体(角色,敌人和子弹)的碰撞(使用.intersects()).这意味着他们的身体的某些部分在绘制时会重叠.

我一直在环顾四周,而且我没有找到任何我理解或可以适用于我的情况的解决方案.到目前为止,我一直在为每个对象旋转我的Graphics2D网格,所以它们实际上并没有被旋转,只是被抽出来了.有没有办法可以实际旋转形状,然后使用像.intersects()这样的东西?

任何帮助或建议表示赞赏.

以下是我用来查看它是否会因在x轴上移动而发生碰撞:

public boolean detectCollisionX(int id, double xMove, double rectXco, double rectYco, int width, int height)

{

boolean valid=true;

//create the shape of the object that is moving.

Rectangle enemyRectangleX=new Rectangle((int)(rectXco+xMove)-enemySpacing,(int)rectYco-enemySpacing,width+enemySpacing*2,height+enemySpacing*2);

if (rectXco+xMove<0 || rectXco+xMove>(areaWidth-width))

{

valid=false;

}

if(enemyNumber>0)

{

for (int x=0; x<=enemyNumber; x++)

{

if (x!=id)

{

//enemies and other collidable objects will be stored in collisionObjects[x] as rectangles.

if (enemyRectangleX.intersects(collisionObjects[x])==true)

{

valid=false;

}

}

}

}

return valid;

}

java矩形碰撞检测_旋转矩形的Java碰撞检测?相关推荐

  1. java applet编程_第二十讲 Java Applet程序设计

    第二十讲Java Applet程序设计 主要内容 初识Java Applet Java Applet的生命周期 Graphics类和图像图形绘制 Applet中播放声音媒体 初识Java Applet ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. java 判断类型_如何快速入门Java编程学习(干货)

    一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...

  4. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  5. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  6. 做Java头发少_这35个Java代码优化细节,你用了吗

    链接:https://www.jianshu.com/p/6e472304b5ac 前言 代码 优化 ,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有 ...

  7. 我的世java途径错误_我的世界JAVA路径错误的解决方法分享

    我的世界JAVA路径错误该怎么解决呢?JAVA是Minecraft运行的虚拟环境必要条件,需要您安装后才开始游戏.很多童鞋在安装过程中都遇到了JAVA路径错误的提示,这是什么原因导致的?第一手游网必须 ...

  8. java编程赋值运算符_跟我学java编程—简单赋值运算符“=”

    赋值运算符是双目运算符,用在赋值表达式中.赋值运算符将值存储在运算符左边操作数指定的变量中.有两种赋值操作,简单赋值和复合赋值,简单赋值把运算符右边的操作数的值存储在运算符左边操作数指定的变量中:复合 ...

  9. java session使用_使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言.如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响.您还在开发环境中安装了N ...

最新文章

  1. go interface转int_32. 一篇文章理解 Go 里的函数
  2. 点击网页跟踪php代码的工具,使用ltrace工具跟踪PHP库函数调用的方法
  3. c语言编程游戏开代码错误,[蓝桥杯][历届试题]数字游戏 (C语言代码)(兄弟们帮我看一下为什么运行错误86%)...
  4. MyEclipse 6.5GA 下载 + 汉化方法
  5. 7-2 人民币兑换 (15 分)
  6. 阿里云吴结生:今天的应用架构,正处在一个不可测的阶段
  7. 群晖修改ipv6dns服务器,hiboy大佬的padavan开启IPv6,并使用IPv6登录黑群晖的方法
  8. Mac上Fortran环境搭建
  9. 学习C语言编程必备的入门书籍
  10. 16-20信息安全工程师上午题总结
  11. FileSplit.exe
  12. b250支持服务器cpu,b250m主板应该上什么cpu
  13. 国内手机市场寒风持续,华为与OV竞争将更激烈
  14. 5G商用元年开启万亿市场, 25G服务器端口出货量大幅增长
  15. 贰贰许远东在浙江省社科联学术年会上关于“中小企业数字化之路”的分享
  16. ZOC7 for Mac(终端仿真器)
  17. MQTT协议之Mosquitto
  18. IT外企那点儿事(18): 当“we are a team”成为口头禅
  19. 用docker-compose来搭建Hadoop(一)——创建三个ubu
  20. 解决Visio导出图片没有边界或者边缘留白过少的问题

热门文章

  1. 两个字符串之间的连接函数,不使用strcat()函数
  2. mysql 优化_常用MySQL优化
  3. hid自定义report 影响键盘_【iOS12人机交互指南】10.1-自定义键盘
  4. ICCV 2021 Oral | 清华提出PoinTr:几何敏感的点云补全Transformer
  5. 基于运动相关分析的实时多源异构传感器时空标定方法研究
  6. Depth by Poking:从自监督抓取学习深度估计
  7. 用CenterNet对旋转目标进行检测
  8. Genome Biology | 基于RNA-seq的孟德尔疾病变异分析
  9. RStuido Server 选择不同的 R 版本(conda 中的不同 R 版本)
  10. 测序数据学习笔记:bcl2fastq 安装