Boats bounce during collision if pointing into collision

#story[1100]
main
cbt24 9 years ago
parent eaa0d2e82b
commit f7d0e9d466

@ -392,6 +392,11 @@ public class Boat extends Collider {
this.timeAtLastMark = timeAtLastMark; this.timeAtLastMark = timeAtLastMark;
} }
public void bounce(double repulsionRadius) {
Azimuth reverseAzimuth = Azimuth.fromDegrees(getBearing().degrees() - 180d);
setPosition(GPSCoordinate.calculateNewPosition(getPosition(), 2 * repulsionRadius, reverseAzimuth));
}
@Override @Override
public boolean rayCast(Boat boat) { public boolean rayCast(Boat boat) {
if(boat != this) { if(boat != this) {
@ -401,5 +406,8 @@ public class Boat extends Collider {
@Override @Override
public void onCollisionEnter(Boat collider, Collision e) { public void onCollisionEnter(Boat collider, Collision e) {
if(e.getBearing().degrees() > 270 || e.getBearing().degrees() < 90) {
collider.bounce(100);
}
} }
} }

@ -90,7 +90,6 @@ public class Mark extends Collider {
@Override @Override
public void onCollisionEnter(Boat collider, Collision e) { public void onCollisionEnter(Boat collider, Collision e) {
Azimuth reverseAzimuth = Azimuth.fromDegrees(collider.getBearing().degrees() - 180d); collider.bounce(repulsionRadius);
collider.setPosition(GPSCoordinate.calculateNewPosition(collider.getPosition(), 2 * repulsionRadius, reverseAzimuth));
} }
} }

Loading…
Cancel
Save