CameraComponent class

CameraComponent is a component through which a World is observed.

A camera consists of two parts: a Viewport, and a Viewfinder. It also references a World component, which is not mounted to the camera, but the camera still knows about it. The world must be mounted somewhere else in the game tree.

A camera is a regular component that can be placed anywhere in the game tree. Most games will have at least one "main" camera for displaying the main game world. However, additional cameras may also be used for some special effects. These extra cameras may be placed either in parallel with the main camera, or within the world. It is even possible to create a camera that looks at itself.

Since CameraComponent is a Component, it is possible to attach other components to it. In particular, adding components directly to the camera is equivalent to adding them to the camera's parent. Components added to the viewport will be affected by the viewport's position, but not by its clip mask. Such components will be rendered on top of the viewport. Components added to the viewfinder will be rendered as if they were part of the world. That is, they will be affected both by the viewport and the viewfinder.

Inheritance

Constructors

CameraComponent({required World world, Viewport? viewport, Viewfinder? viewfinder})

Properties

children ComponentSet
The children of the current component.
no setterinherited
debugColor Color
The color that the debug output should be rendered with.
getter/setter pairinherited
debugCoordinatesPrecision int?
How many decimal digits to print when displaying coordinates in the debug mode. Setting this to null will suppress all coordinates from the output.
no setterinherited
debugMode bool
Returns whether this Component is in debug mode or not. When a child is added to the Component it gets the same debugMode as its parent has when it is prepared.
getter/setter pairinherited
debugPaint Paint
The debugColor represented as a Paint object.
no setterinherited
debugTextPaint TextPaint
Returns a TextPaint object with the debugColor set as color for the text.
no setterinherited
hasChildren bool
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hasPendingLifecycleEvents bool
no setterinherited
isLoaded bool
Whether this component has completed its onLoad step.
no setterinherited
isMounted bool
Whether this component is currently added to a component tree.
no setterinherited
lifecycle → _LifecycleManager
no setterinherited
loaded Future<void>
A future that will complete once this component has finished loading.
no setterinherited
mounted Future<void>
A future that will complete once the component is mounted on its parent
no setterinherited
parent Component?
The current parent of the component, or null if there is none.
no setterinherited
positionType PositionType
What coordinate system this component should respect (i.e. should it observe camera, viewport, or use the raw canvas).
getter/setter pairinherited
priority int
Render priority of this component. This allows you to control the order in which your components are rendered.
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shouldRemove bool
Whether this component should be removed or not.
getter/setter pairinherited
viewfinder Viewfinder
The viewfinder controls which part of the world is seen through the viewport.
final
viewport Viewport
The viewport is the "window" through which the game world is observed.
final
world World
Special component that is designed to be the root of a game world.
getter/setter pair

Methods

add(Component component) Future<void>?
Schedules component to be added as a child to this component.
inherited
addAll(Iterable<Component> components) Future<void>
A convenience method to add multiple children at once.
inherited
addToParent(Component parent) Future<void>?
Adds this component to the provided parent (see add for details).
inherited
ancestors({bool includeSelf = false}) Iterable<Component>
An iterator producing this component's parent, then its parent's parent, then the great-grand-parent, and so on, until it reaches a component without a parent.
inherited
changeParent(Component newParent) → void
Changes the current parent for another parent and prepares the tree under the new root.
inherited
changePriorityWithoutResorting(int priority) → void
Usually this is not something that the user would want to call since the component list isn't re-ordered when it is called. See FlameGame.changePriority instead.
inherited
contains(Component c) bool
Whether the children list contains the given component.
inherited
containsPoint(Vector2 point) bool
Called to check whether the point is to be counted as within the component It needs to be overridden to have any effect, like it is in PositionComponent.
inherited
createComponentSet() ComponentSet
This method creates the children container for the current component. Override this method if you need to have a custom ComponentSet within a particular class.
inherited
descendants({bool includeSelf = false, bool reversed = false}) Iterable<Component>
Recursively enumerates all nested children.
inherited
eventPosition(PositionInfo info) Vector2
inherited
findGame() Game?
inherited
findParent<T extends Component>() → T?
Returns the closest parent further up the hierarchy that satisfies type=T, or null if no such parent can be found.
inherited
firstChild<T extends Component>() → T?
Returns the first child that matches the given type T.
inherited
handleResize(Vector2 size) → void
inherited
lastChild<T extends Component>() → T?
Returns the last child that matches the given type T.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onGameResize(Vector2 size) → void
Called whenever the size of the top-level Canvas changes.
inherited
onLoad() Future<void>
Late initialization method for Component.
override
onMount() → void
Called when the component is added to its parent.
inherited
onRemove() → void
Called right before the component is removed from the game.
inherited
processPendingLifecycleEvents() → void
Attempt to resolve any pending lifecycle events on this component.
inherited
propagateToChildren<T extends Component>(bool handler(T), {bool includeSelf = false}) bool
This method first calls the passed handler on the leaves in the tree, the children without any children of their own. Then it continues through all other children. The propagation continues until the handler returns false, which means "do not continue", or when the handler has been called with all children.
inherited
remove(Component component) → void
Removes a component from the component tree, calling onRemove for it and its children.
inherited
removeAll(Iterable<Component> components) → void
Removes all the children in the list and calls onRemove for all of them and their children.
inherited
removeFromParent() → void
Remove the component from its parent in the next tick.
inherited
render(Canvas canvas) → void
inherited
renderDebugMode(Canvas canvas) → void
inherited
renderTree(Canvas canvas) → void
Renders the world as seen through this camera.
override
reorderChildren() → void
Call this if any of this component's children priorities have changed at runtime.
inherited
setMounted() → void
inherited
toString() String
A string representation of this object.
inherited
update(double dt) → void
This method is called periodically by the game engine to request that your component updates itself.
inherited
updateTree(double dt) → void
This method traverses the component tree and calls update on all its children according to their priority order, relative to the priority of the direct siblings, not the children or the ancestors.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

currentCamera CameraComponent?
A camera that currently performs rendering.
no setter
currentCameras List<CameraComponent>
Stack of all current cameras in the render tree.
final
maxCamerasDepth int
Maximum number of nested cameras that will be rendered.
getter/setter pair