-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