Tag: 碰撞检测

如何修复碰撞响应中的圆和矩形重叠?

由于在数字世界中几乎从未发生过真正的碰撞,因此我们总会遇到“碰撞”圆与矩形重叠的情况。 如何在不与重叠的矩形完美碰撞的情况下放回圆圈? 假设矩形停止(零速度)和轴对齐。 我会用后验方法(二维)解决这个问题。 总之,我必须为t求解这个等式 : 哪里: 是一个回答问题的数字:碰撞发生了多少帧之前? 是圆的半径。 是圆的中心 是它的速度。 和 是返回圆和矩形碰撞的点的x和y坐标的函数(当圆圈处于时 位置,即处于与矩形完全碰撞的位置)。 最近我解决了圆圈之间碰撞的类似问题 ,但现在我不知道函数A和B的定律。

边界椭圆

我已经获得了图形模块的分配,其中一部分是计算一组任意形状的最小边界椭圆。 椭圆不必是轴对齐的。 这是在使用AWT形状的java(euch)中工作,因此我可以使用所有工具形状来检查对象的包含/交集。

Java矩形碰撞检测混淆

我使用Bucky的光滑Java教程做了一个简单的2D状态改变游戏,我修改了这个游戏,现在想在地图上设置碰撞,这样我的玩家就无法通过地图上的房子。 我想我对碰撞的工作方式有所了解: 使用以下代码制作2个矩形: public Rectangle getBounds() { return new Rectangle(x, y, width, height); } 1为播放器,1为障碍物,我如何将其放入我的代码中?如何告诉java障碍物的矩形与播放器矩形不同? 然后在制作了2个矩形后,我会设置一个if语句,说如果相交就行了…… 希望在此之后,我认为它会起作用。 关于游戏的一些更多信息,它是一个状态改变游戏,它有一些方法,如init,渲染和更新的方法(我在哪里放置我的矩形和if语句,在更新方法中?),它还是一个顶上视图游戏有点像口袋妖怪,如果这有帮助。 如果您需要我的代码,请询问,我现在不想让它过度拥挤这篇文章。 EDIT1: package javagame; import org.newdawn.slick.*; import org.newdawn.slick.state.*; public class Play extends BasicGameState{ Animation bucky, movingUp, movingDown, movingLeft, movingRight, movingBL, movingBR, movingFL, movingFR; Image worldMap; boolean quit = false;//gives user to quit the game int[] duration = […]

Java中两个图像之间的碰撞检测

我在写作的游戏中显示了两个角色,即玩家和敌人。 定义如下: public void player(Graphics g) { g.drawImage(plimg, x, y, this); } public void enemy(Graphics g) { g.drawImage(enemy, 200, 200, this); } 然后叫: player(g); enemy(g); 我可以用键盘移动播放器(),但在尝试检测两者之间的碰撞时我感到很茫然。 很多人都说使用矩形,但作为一个初学者,我看不出如何将它链接到我现有的代码中。 谁能为我提供一些建议?