public override CollisionResult CollidesWithCopter(Copter other) { if (other.GetType().Equals(typeof(CircleCopter))) { CircleCopter otherCircleCopter = (CircleCopter)other; return(GeometryUtility.CircleCollision(this.Position(), this.Radius, otherCircleCopter.Position(), otherCircleCopter.Radius)); } //That should not happen throw new NotImplementedException(); }
public bool PositionAvailable(Vector2 proposal, float radius) { bool succeeded = false; CircleCopter copter = new CircleCopter(proposal, radius); //2nd step: Check for collision with walls: succeeded = !CollisionCopterArena(copter); //3rd step: Check for collision with other copters: succeeded = succeeded && !CollisionWithOtherCopters(copter); return(succeeded); }
public bool PlaceLeader(Vector2 position, float radius) { bool succeeded = PositionAvailable(position, radius); if (!succeeded) { return(false); } Leader = new CircleCopter(position, radius); Leader.SetVisible(Color.red); return(true); }
public void PlaceLeader(float radius) { bool succeeded = false; while (!succeeded) { //1st step: Get position proposal and make a copter: Vector2 proposal = PositionProposal(); CircleCopter copter = new CircleCopter(proposal, radius); //2nd step: Check for collision with walls: succeeded = !CollisionCopterArena(copter); //3rd step: Check for collision with other copters: succeeded = succeeded && !CollisionWithOtherCopters(copter); if (succeeded) { Leader = copter; Leader.SetVisible(Color.red); } } }
public void PlaceCoptersRadius(int numberOfCopters, float radius) { for (int i = 0; i < numberOfCopters; i++) { bool succeeded = false; while (!succeeded) { //1st step: Get position proposal and make a copter: Vector2 proposal = PositionProposal(); CircleCopter copter = new CircleCopter(proposal, radius); //2nd step: Check for collision with walls: succeeded = !CollisionCopterArena(copter); //3rd step: Check for collision with other copters: succeeded = succeeded && !CollisionWithOtherCopters(copter); if (succeeded) { copter.SetVisible(Color.green); AllCopters.Add(copter); } } } }