Boats bounce during collision if pointing into collision
#story[1100]
This commit is contained in:
@@ -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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user