Interface ICamera
- All Superinterfaces:
IUpdateable
- All Known Implementing Classes:
Camera, FreeFlightCamera, LocationLockCamera
Defines the viewport through which entities and tiles are rendered on screen.
Camera control is based on a Focus system. Generally, the camera will always try to keep the focus point in the center of the viewport.
There are two coordinate systems referenced in ICamera methods: map coordinates, and screen coordinates. The camera is responsible for converting between the two coordinate systems.
Camera provides the standard focus and zoom behavior. FreeFlightCamera allows independent
movement, while LocationLockCamera follows a supplied location.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceThis listener interface receives focus events for a camera.static interfaceThis listener interface receives zoom events for a camera. -
Field Summary
Fields inherited from interface IUpdateable
DEFAULT_UPDATE_PRIORITY -
Method Summary
Modifier and TypeMethodDescriptionGets the current horizontal alignment used for clamping the camera to the map boundaries.Gets the current vertical alignment used for clamping the camera to the map boundaries.getFocus()Gets the map location that is focused by this camera.getMapLocation(Point2D point) Converts a point in screen coordinates into a map location.doubleGets the x coordinate of the viewport's origin.doubleGets the y coordinate of the viewport's origin.default floatCombines this camera's zoom with the game's render scale.Gets the camera's viewport region, in screen coordinates.getViewportDimensionCenter(IEntity entity) Gets the center of the entity, in screen coordinates.getViewportLocation(double x, double y) Converts a location in map coordinates into screen coordinates.default Point2DgetViewportLocation(IEntity entity) Converts the entity's location into screen coordinates.default Point2DgetViewportLocation(Point2D point) Converts a location in map coordinates into screen coordinates.floatgetZoom()The zoom factor of this camera.booleanReturns whether this camera will clamp the viewport to the bounds of the map.voidonFocus(ICamera.FocusChangedListener listener) Adds the specified focus changed listener to receive events when the focus of this camera changed.voidonZoom(ICamera.ZoomChangedListener listener) Adds the specified zoom changed listener to receive events when the zoom of this camera changed.voidpan(double x, double y, int duration) Pans the camera over the specified duration (in frames) to the target location, after accounting for modifications such as clamping to the map.voidPans the camera over the specified duration (in frames) to the target location, after accounting for modifications such as clamping to the map.voidRemoves the specified focus changed listener.voidRemoves the specified zoom changed listener.voidsetClampAlign(Align align, Valign valign) Sets the alignment for clamping the camera to the map boundaries.voidsetClampToMap(boolean clampToMap) Set the camera to clamp the viewport to the bounds of the map.voidsetFocus(double x, double y) Focuses the camera on a given point.default voidFocuses the camera on a given point.voidsetZoom(float zoom, int duration) Changes the camera's zoom over the specified duration (in frames) to the target zoom.voidshake(double intensity, int delay, int duration) Shakes the camera for the specified duration.voidCurrently an update function for the shake effect.Methods inherited from interface IUpdateable
getUpdatePriority, update
-
Method Details
-
onZoom
Adds the specified zoom changed listener to receive events when the zoom of this camera changed.- Parameters:
listener- The listener to add.
-
removeZoomListener
Removes the specified zoom changed listener.- Parameters:
listener- The listener to remove.
-
onFocus
Adds the specified focus changed listener to receive events when the focus of this camera changed.- Parameters:
listener- The listener to add.
-
removeFocusListener
Removes the specified focus changed listener.- Parameters:
listener- The listener to remove.
-
getFocus
Point2D getFocus()Gets the map location that is focused by this camera.- Returns:
- the focus's location in map coordinates
-
getMapLocation
-
getPixelOffsetX
double getPixelOffsetX()Gets the x coordinate of the viewport's origin.- Returns:
- the offset, in screen coordinates
-
getPixelOffsetY
double getPixelOffsetY()Gets the y coordinate of the viewport's origin.- Returns:
- the offset, in screen coordinates
-
getViewport
Rectangle2D getViewport()Gets the camera's viewport region, in screen coordinates.- Returns:
- the viewport region, in screen coordinates
-
getViewportDimensionCenter
-
getViewportLocation
Converts a location in map coordinates into screen coordinates.- Parameters:
x- The x-coordinate of the viewport location.y- The y-coordinate of the viewport location.- Returns:
- the screen location
-
getViewportLocation
-
getViewportLocation
-
getRenderScale
default float getRenderScale()Combines this camera's zoom with the game's render scale.- Returns:
- the scale factor
- See Also:
-
getZoom
float getZoom()The zoom factor of this camera.- Returns:
- the scale factor
-
setFocus
Focuses the camera on a given point.- Parameters:
focus- the point, in map coordinates
-
setFocus
void setFocus(double x, double y) Focuses the camera on a given point.- Parameters:
x- the x coordinate of the point, in map coordinatesy- the y coordinate of the point, in map coordinates
-
pan
Pans the camera over the specified duration (in frames) to the target location, after accounting for modifications such as clamping to the map. Event listeners attached to this camera are notified when the pan completes.- Parameters:
focus- the new focus for the camera once the panning is completeduration- the number of frames between this call and when the pan completes
-
pan
void pan(double x, double y, int duration) Pans the camera over the specified duration (in frames) to the target location, after accounting for modifications such as clamping to the map. Event listeners attached to this camera are notified when the pan completes.- Parameters:
x- the new X coordinate for the camera once the panning is completey- the new Y coordinate for the camera once the panning is completeduration- the number of frames between this call and when the pan completes
-
setZoom
void setZoom(float zoom, int duration) Changes the camera's zoom over the specified duration (in frames) to the target zoom.- Parameters:
zoom- the new zoom scaleduration- the number of frames between this call and when the zoom completes
-
isClampToMap
boolean isClampToMap()Returns whether this camera will clamp the viewport to the bounds of the map.- Returns:
- True if the camera viewport is currently clamped to the map boundaries; otherwise false.
-
setClampToMap
void setClampToMap(boolean clampToMap) Set the camera to clamp the viewport to the bounds of the map.- Parameters:
clampToMap- A flag indicating whether the camera viewport should be clamped to the map boundaries.
-
setClampAlign
-
getClampAlign
Align getClampAlign()Gets the current horizontal alignment used for clamping the camera to the map boundaries.- Returns:
- The horizontal alignment.
-
getClampValign
Valign getClampValign()Gets the current vertical alignment used for clamping the camera to the map boundaries.- Returns:
- The vertical alignment.
-
shake
void shake(double intensity, int delay, int duration) Shakes the camera for the specified duration. The way the camera shakes is implementation defined.- Parameters:
intensity- The intensity of the screen shake effect.delay- The delay in milliseconds between randomized offset updates.duration- The total duration of the effect in milliseconds.
-
updateFocus
void updateFocus()Currently an update function for the shake effect.
-