com.badlogic.gdx.ai.utils.Location Java Examples

The following examples show how to use com.badlogic.gdx.ai.utils.Location. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: DefensiveCircleFormationPattern.java    From gdx-ai with Apache License 2.0 6 votes vote down vote up
@Override
public Location<T> calculateSlotLocation (Location<T> outLocation, int slotNumber) {
	if (numberOfSlots > 1) {
		// Place the slot around the circle based on its slot number
		float angleAroundCircle = (MathUtils.PI2 * slotNumber) / numberOfSlots;

		// The radius depends on the radius of the member,
		// and the number of members in the circle:
		// we want there to be no gap between member's shoulders.
		float radius = memberRadius / (float)Math.sin(Math.PI / numberOfSlots);

		// Fill location components based on the angle around circle.
		outLocation.angleToVector(outLocation.getPosition(), angleAroundCircle).scl(radius);

		// The members should be facing out
		outLocation.setOrientation(angleAroundCircle);
	}
	else {
		outLocation.getPosition().setZero();
		outLocation.setOrientation(MathUtils.PI2 * slotNumber);
	}

	// Return the slot location
	return outLocation;
}
 
Example #2
Source File: Formation.java    From gdx-ai with Apache License 2.0 5 votes vote down vote up
/** Creates a {@code Formation} for the specified {@code pattern}, {@code slotAssignmentStrategy} and {@code moderator}.
 * @param anchor the anchor point of this formation, usually a {@link Steerable}. Cannot be {@code null}.
 * @param pattern the pattern of this formation
 * @param slotAssignmentStrategy the strategy used to assign a member to his slot
 * @param motionModerator the motion moderator. Can be {@code null} if moderation is not needed
 * @throws IllegalArgumentException if the anchor point is {@code null} */
public Formation (Location<T> anchor, FormationPattern<T> pattern, SlotAssignmentStrategy<T> slotAssignmentStrategy,
	FormationMotionModerator<T> motionModerator) {
	if (anchor == null) throw new IllegalArgumentException("The anchor point cannot be null");
	this.anchor = anchor;
	this.pattern = pattern;
	this.slotAssignmentStrategy = slotAssignmentStrategy;
	this.motionModerator = motionModerator;

	this.slotAssignments = new Array<SlotAssignment<T>>();
	this.driftOffset = anchor.newLocation();
	this.positionOffset = anchor.getPosition().cpy();
}
 
Example #3
Source File: Hide.java    From gdx-ai with Apache License 2.0 5 votes vote down vote up
/** Creates a {@code Hide} behavior for the specified owner, target and proximity.
 * @param owner the owner of this behavior
 * @param target the target of this behavior
 * @param proximity the proximity to find nearby obstacles */
public Hide (Steerable<T> owner, Location<T> target, Proximity<T> proximity) {
	super(owner, target);
	this.proximity = proximity;

	this.bestHidingSpot = newVector(owner);
	this.toObstacle = null; // Set to null since we'll reuse steering.linear for this vector
}
 
Example #4
Source File: FormationMotionModerator.java    From gdx-ai with Apache License 2.0 5 votes vote down vote up
/** Calculates the drift offset when members are in the given set of slots for the specified pattern.
 * @param centerOfMass the output location set to the calculated drift offset
 * @param slotAssignments the set of slots
 * @param pattern the pattern
 * @return the given location for chaining. */
public Location<T> calculateDriftOffset (Location<T> centerOfMass, Array<SlotAssignment<T>> slotAssignments,
	FormationPattern<T> pattern) {

	// Clear the center of mass
	centerOfMass.getPosition().setZero();
	float centerOfMassOrientation = 0;

	// Make sure tempLocation is instantiated
	if (tempLocation == null) tempLocation = centerOfMass.newLocation();

	T centerOfMassPos = centerOfMass.getPosition();
	T tempLocationPos = tempLocation.getPosition();

	// Go through each assignment and add its contribution to the center
	float numberOfAssignments = slotAssignments.size;
	for (int i = 0; i < numberOfAssignments; i++) {
		pattern.calculateSlotLocation(tempLocation, slotAssignments.get(i).slotNumber);
		centerOfMassPos.add(tempLocationPos);
		centerOfMassOrientation += tempLocation.getOrientation();
	}

	// Divide through to get the drift offset.
	centerOfMassPos.scl(1f / numberOfAssignments);
	centerOfMassOrientation /= numberOfAssignments;
	centerOfMass.setOrientation(centerOfMassOrientation);

	return centerOfMass;
}
 
Example #5
Source File: Face.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates a {@code Face} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target of this behavior. */
public Face (Steerable<T> owner, Location<T> target) {
	super(owner, target);
}
 
Example #6
Source File: Flee.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates a {@code Flee} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target agent of this behavior. */
public Flee (Steerable<T> owner, Location<T> target) {
	super(owner, target);
}
 
Example #7
Source File: Flee.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Flee<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #8
Source File: Seek.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates a {@code Seek} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target agent of this behavior. */
public Seek (Steerable<T> owner, Location<T> target) {
	super(owner);
	this.target = target;
}
 
Example #9
Source File: Seek.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Returns the target to seek. */
public Location<T> getTarget () {
	return target;
}
 
Example #10
Source File: Seek.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Sets the target to seek.
 * @return this behavior for chaining. */
public Seek<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #11
Source File: Arrive.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates an {@code Arrive} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target of this behavior */
public Arrive (Steerable<T> owner, Location<T> target) {
	super(owner);
	this.target = target;
}
 
Example #12
Source File: Arrive.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Returns the target to arrive to. */
public Location<T> getTarget () {
	return target;
}
 
Example #13
Source File: Arrive.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Sets the target to arrive to.
 * @return this behavior for chaining. */
public Arrive<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #14
Source File: FormationMember.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Returns the target location of this formation member. */
public Location<T> getTargetLocation ();
 
Example #15
Source File: Face.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Face<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #16
Source File: FollowPath.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public FollowPath<T, P> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #17
Source File: LookWhereYouAreGoing.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Sets the target to align to. Notice that this method is inherited from {@link ReachOrientation}, but is completely useless
 * for {@code LookWhereYouAreGoing} because the target orientation is determined by the velocity of the owner itself.
 * @return this behavior for chaining. */
@Override
public LookWhereYouAreGoing<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #18
Source File: Hide.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates a {@code Hide} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target of this behavior */
public Hide (Steerable<T> owner, Location<T> target) {
	this(owner, target, null);
}
 
Example #19
Source File: Hide.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Hide<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #20
Source File: ReachOrientation.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Creates a {@code ReachOrientation} behavior for the specified owner and target.
 * @param owner the owner of this behavior
 * @param target the target. */
public ReachOrientation (Steerable<T> owner, Location<T> target) {
	super(owner);
	this.target = target;
}
 
Example #21
Source File: ReachOrientation.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Returns the target to align to. */
public Location<T> getTarget () {
	return target;
}
 
Example #22
Source File: ReachOrientation.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Sets the target to align to.
 * @return this behavior for chaining. */
public ReachOrientation<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #23
Source File: Wander.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
/** Sets the target to align to. Notice that this method is inherited from {@link ReachOrientation}, but is completely useless
 * for {@code Wander} because owner's orientation is determined by the internal target, which is moving on the wander circle.
 * @return this behavior for chaining. */
@Override
public Wander<T> setTarget (Location<T> target) {
	this.target = target;
	return this;
}
 
Example #24
Source File: SteerableAdapter.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Location<T> newLocation () {
	return null;
}
 
Example #25
Source File: SteeringBulletEntity.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Location<Vector3> newLocation () {
	return new BulletLocation();
}
 
Example #26
Source File: GhostAI.java    From Pacman_libGdx with MIT License 4 votes vote down vote up
@Override
public Location<Vector2> newLocation() {
    return new Box2dLocation();
}
 
Example #27
Source File: Box2dLocation.java    From Pacman_libGdx with MIT License 4 votes vote down vote up
@Override
public Location<Vector2> newLocation() {
    return new Box2dLocation();
}
 
Example #28
Source File: SteerableBody.java    From GdxDemo3D with Apache License 2.0 4 votes vote down vote up
@Override
public Location<Vector3> newLocation() {
	return new BulletLocation();
}
 
Example #29
Source File: BulletLocation.java    From GdxDemo3D with Apache License 2.0 4 votes vote down vote up
@Override
public Location<Vector3> newLocation() {
	return new BulletLocation();
}
 
Example #30
Source File: Box2dLocation.java    From gdx-ai with Apache License 2.0 4 votes vote down vote up
@Override
public Location<Vector2> newLocation () {
	return new Box2dLocation();
}