Boats now reverse smoothly when colliding
- Collision objects specify which boat is colliding - RaceLogic sets up an observable CollisionCommand when collision bubbles up - Boats now selectively identify observers of collision #story[1196]
This commit is contained in:
@@ -403,10 +403,6 @@ public class Boat extends Collider {
|
||||
public boolean isSailsOut() {
|
||||
return sailsOut;
|
||||
}
|
||||
public void bounce(double repulsionRadius) {
|
||||
Azimuth reverseAzimuth = Azimuth.fromDegrees(getBearing().degrees() - 180d);
|
||||
setPosition(GPSCoordinate.calculateNewPosition(getPosition(), 2 * repulsionRadius, reverseAzimuth));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean rayCast(Boat boat) {
|
||||
@@ -416,9 +412,11 @@ public class Boat extends Collider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCollisionEnter(Boat collider, Collision e) {
|
||||
public void onCollisionEnter(Collision e) {
|
||||
if(e.getBearing().degrees() > 270 || e.getBearing().degrees() < 90) {
|
||||
collider.bounce(100);
|
||||
// Notify observers of collision
|
||||
this.setChanged();
|
||||
notifyObservers(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,8 @@ public class Mark extends Collider{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCollisionEnter(Boat collider, Collision e) {
|
||||
collider.bounce(repulsionRadius);
|
||||
public void onCollisionEnter(Collision e) {
|
||||
this.setChanged();
|
||||
notifyObservers(e);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user