-3
我正在尝试与矩形做一个简单的碰撞。当两个物体相撞时,游戏重置。使用此代码,如果某个对象被另一个具有左角的对象命中,则我的游戏将重置。我试图做如果 - 其他语句,但我不知道为什么我没有得到预期的结果。LibGdx中的矩形碰撞
public boolean hitByObstacles(ObstaclesCars obstaclesCars) {
boolean isHit = false;
for (Car car : obstaclesCars.ObstaclesCarsList) {
if (car.position.dst(position) < Constants.HUMANPLAYER_RADIUS) {
isHit = true;
}
}
return isHit;
}
这里是我的整个车类:
public class Car {
public static final String TAG = Car.class.getName();
Vector2 position;
Vector2 velocity;
public Car (Vector2 position){
this.position = position;
this.velocity = new Vector2();
}
public void update (float delta) {
velocity.lerp(Constants.CAR_ACCELERATION,delta);
position.mulAdd(velocity, delta);
}
public void render (ShapeRenderer renderer){
renderer.setColor(Constants.CAR_COLOR);
renderer.set(ShapeRenderer.ShapeType.Filled);
renderer.rect(position.x,position.y,Constants.CAR_WIDTH, Constants.CAR_HEIGHT);
}
HUMANPLAYER_RADIUS
public static final float HUMANPLAYER_RADIUS = 0.5f;
你没有说什么地方出了错,或者提供足够的信息来诊断任何问题。但我确实看到代码中没有任何矩形。 – Tenfour04
我们没有机会知道你在这里做什么。什么是car.position.dst(位置)?这个位置变量是什么,该方法返回什么?什么是Constants.HUMANPLAYER_RADIUS?它是一个int吗?它是矢量吗?还有别的吗?所以你问我们为什么如果一个神奇的方法不是一个神奇的价值,你的代码不起作用。 – IronMonkey