gpt4 book ai didi

java - 球是否接触到其中一个 Racket ?

转载 作者:行者123 更新时间:2023-12-01 04:13:26 25 4
gpt4 key购买 nike

我正在制作 apong 游戏,在 Paddle 类的 boolean 方法中,我想确定球是否接触到两个 Racket 中的任何一个,我正在努力寻找正确的逻辑......

这里是变量:

// instance variables 
private Screen theScreen;
private MyroRectangle theRectangle;
private int topLeftX;
private int topLeftY;


// constants
private final int HEIGHT = 100; //the paddle's fixed height
private final int WIDTH = 5; //the paddle's fixed width
private final int PIXELS_PER_MOVE = 20; //the number of pixels a paddle can move either up or down in one timestep

方法如下: * 这个方法只是判断球是否触碰,对球弹回来没有任何作用

public boolean isTouching(Ball b)
{

boolean t = false;
if ((theScreen.getWidth()-(b.getX() + b.getRadius())) >= theScreen.getWidth()-theRectangle.getCenterX() )
{
t= true;
}

return t;

我也尝试过:

 if ((b.getX() > theRectangle.getCenterX()/2) && (b.getY() < theRectangle.getCenterY()/2))

==========** 可能需要的球类的方法:

getX()
getY()
getRadius()

==============

** 矩形类:

getCenterX()
getCenterY()

==============

** 屏幕类:

getWidth()
getHeight()

我只想至少确定其中一个条件,然后我才能弄清楚其余的条件。

最佳答案

在大学三年级时,我研究了 Windows Phone 的碰撞检测系统算法。它并不完美,但非常高效,并且可以适应大多数游戏。

它的工作方式非常简单。有两种类型的对象:可碰撞对象(例如敌人或建筑物)以及您希望检查与这些可碰撞对象是否发生碰撞的对象。

当我学习数据结构类(class)时,我有了这个想法,我们谈到了链接列表。我想如果每个链接都是一个可碰撞的对象,您可以将已经在其中创建的游戏对象粘贴进来。然后,当游戏对象四处移动时,您将有一种轻量级的方法来检查它们的位置是否发生碰撞。于是我的系统就诞生了。

基本上归结为使用

C (or the distance between to points) = SqrRoot(A^2 + B^2) - radius of ball

这个公式你应该看起来很熟悉。

您可以查看此问题的完整答案: Java More Resourceful Collision Detection

关于java - 球是否接触到其中一个 Racket ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com