ShapeComponent class

A ShapeComponent is a Shape wrapped in a PositionComponent so that it can be added to a component tree and take the camera and viewport into consideration when rendering.

Inheritance
Mixed in types
Implementers

Constructors

ShapeComponent(HitboxShape shape, {Paint? paint, Vector2? position, Vector2? size, Vector2? scale, double? angle, Anchor? anchor, int? priority})

Properties

absoluteAngle double
The resulting angle after all the ancestors and the components own angle has been applied.
no setterinherited
absoluteCenter Vector2
Get the absolute center of the component
no setterinherited
absolutePosition Vector2
The anchor's position in absolute (world) coordinates.
no setterinherited
absoluteTopLeftPosition Vector2
Get the absolute top left position regardless of whether it is a child or not
no setterinherited
anchor Anchor
Anchor point for this component. An anchor point describes a point within the rectangle of size size. This point is considered to be the logical "center" of the component. This can be visualized as the point where Flame "grabs" the component. All transforms occur around this point: the position is where the anchor point will end up after the component is translated; the rotation and scaling also happen around this anchor point.
getter/setter pairinherited
angle double
Rotation angle (in radians) of the component. The component will be rotated around its anchor point in the clockwise direction if the angle is positive, or counterclockwise if the angle is negative.
getter/setter pairinherited
center Vector2
The position of the center of the component's bounding rectangle in the parent's coordinates.
getter/setter pairinherited
children ComponentSet
latefinalinherited
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
hashCode int
The hash code for this object.
no setterinherited
height double
The height of the component in local coordinates. Note that the object may visually appear larger or smaller due to application of scale.
getter/setter pairinherited
hitboxes UnmodifiableListView<HitboxShape>
no setterinherited
isHud bool
Whether this component is a HUD (Heads-up display) object or not.
getter/setter pairinherited
isLoaded bool
Whether this component is done loading through onLoad.
getter/setter pairinherited
isMounted bool
Whether this component is currently added to a component tree.
getter/setter pairinherited
isPrepared bool
Whether this component has been prepared and is ready to be added to the game loop.
getter/setter pairinherited
nextParent Component?
If the component should be added to another parent once it has been removed from its current parent.
getter/setter pairinherited
onLoadCache Future<void>?
Since onLoad only should run once throughout a the lifetime of the implementing class, it is cached so that it can be reused when the parent component/game/widget changes.
getter/setter pairinherited
paint Paint
getter/setter pair
parent Component?
Get the current parent of the component, if there is one, otherwise null.
no setterinherited
position ↔ NotifyingVector2
The position of this component's anchor on the screen.
getter/setter pairinherited
priority int
Render priority of this component. This allows you to control the order in which your components are rendered.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scale ↔ NotifyingVector2
The scale factor of this component. The scale can be different along the X and Y dimensions. A scale greater than 1 makes the component bigger, and less than 1 smaller. The scale can also be negative, which results in a mirror reflection along the corresponding axis.
getter/setter pairinherited
scaledSize Vector2
The "physical" size of the component. This is the size of the component as seen from the parent's perspective, and it is equal to size * scale. This is a computed property and cannot be modified by the user.
no setterinherited
shape → HitboxShape
final
shouldRemove bool
Whether this component should be removed or not.
getter/setter pairinherited
size ↔ NotifyingVector2
The logical size of the component. The game assumes that this is the approximate size of the object that will be drawn on the screen. This size will therefore be used for collision detection and tap handling.
getter/setter pairinherited
topLeftPosition Vector2
The top-left corner's position in the parent's coordinates.
getter/setter pairinherited
transform → Transform2D
finalinherited
transformMatrix Matrix4
The total transformation matrix for the component. This matrix combines translation, rotation and scale transforms into a single entity. The matrix is cached and gets recalculated only as necessary.
no setterinherited
width double
The width of the component in local coordinates. Note that the object may visually appear larger or smaller due to application of scale.
getter/setter pairinherited
x double
X position of this component's anchor on the screen.
getter/setter pairinherited
y double
Y position of this component's anchor on the screen.
getter/setter pairinherited

Methods

absolutePositionOf(Vector2 point) Vector2
Convert local coordinates of a point point inside the component into the global (world) coordinate space.
inherited
absolutePositionOfAnchor(Anchor anchor) Vector2
Similar to absolutePositionOf(), but applies to any anchor point within the component.
inherited
absoluteToLocal(Vector2 point) Vector2
Transform point from the global (world) coordinate space into the local coordinates. This function is the inverse of absolutePositionOf().
inherited
add(Component component) Future<void>
Prepares and registers a component to be added on the next game tick
inherited
addAll(Iterable<Component> components) Future<void>
Adds multiple children.
inherited
addHitbox(HitboxShape shape) → void
inherited
ancestors() List<Component>
A list containing the current parent and its parent, and so on, until it reaches a component without a parent.
inherited
changeParent(Component component) → 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
Checks whether the hitbox represented by the list of HitboxShape contains the point.
inherited
createComponentSet() ComponentSet
This method sets up the OrderedSet instance used by this component to handle its children, This is set up before any lifecycle methods happen.
inherited
distance(PositionComponent other) double
Measure the distance (in parent's coordinate space) between this component's anchor and the other component's anchor.
inherited
eventPosition(PositionInfo info) Vector2
inherited
findParent<T extends Component>() → T?
Finds the closest parent further up the hierarchy that satisfies type=T, or null if none is found.
inherited
flipHorizontally() → void
Flip the component horizontally around its anchor point.
inherited
flipHorizontallyAroundCenter() → void
Flip the component horizontally around its center line.
inherited
flipVertically() → void
Flip the component vertically around its anchor point.
inherited
flipVerticallyAroundCenter() → void
Flip the component vertically around its center line.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onGameResize(Vector2 gameSize) → void
It receives the new game size. Executed right after the component is attached to a game and right before onLoad is called.
inherited
onLoad() Future<void>?
Whenever onLoad returns something, the parent will wait for the Future to be resolved before adding it. If null is returned, the class is added right away.
inherited
onMount() → void
Called after the component has successfully run onLoad and before the component is added to its new parent.
inherited
onRemove() → void
Called right before the component is removed from the game.
inherited
positionOf(Vector2 point) Vector2
Convert local coordinates of a point point inside the component into the parent's coordinate space.
inherited
positionOfAnchor(Anchor anchor) Vector2
Similar to positionOf(), but applies to any anchor point within the component.
inherited
possiblyContainsPoint(Vector2 point) bool
Since this is a cheaper calculation than checking towards all shapes this check can be done first to see if it even is possible that the shapes can contain the point, since the shapes have to be within the size of the component.
inherited
possiblyOverlapping(HasHitboxes other) bool
Since this is a cheaper calculation than checking towards all shapes, this check can be done first to see if it even is possible that the shapes can overlap, since the shapes have to be within the size of the component.
inherited
prepare(Component parent) → void
Prepares the Component to be added to a parent, and if there is an ancestor that is a FlameGame that game will do necessary preparations for this component. If there are no parents that are a Game false will be returned and this will run again once an ancestor or the component itself is added to a Game.
inherited
propagateToChildren<T extends Component>(bool handler(T)) 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
reAddChildren() Future<void>
The children are added again to the component set so that prepare, onLoad and onMount runs again. Used when a parent is changed further up the tree.
inherited
remove(Component c) → void
Removes a component from the component tree, calling onRemove for it and its children.
inherited
removeAll(Iterable<Component> cs) → 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
removeHitbox(HitboxShape shape) → void
inherited
render(Canvas canvas) → void
override
renderDebugMode(Canvas canvas) → void
inherited
renderHitboxes(Canvas canvas, {Paint? paint}) → void
inherited
renderTree(Canvas canvas) → void
inherited
reorderChildren() → void
Call this if any of this component's children priorities have changed at runtime.
inherited
setByRect(Rect rect) → void
Mutates position and size using the provided rect as basis. This is a relative rect, same definition that toRect use (therefore both methods are compatible, i.e. setByRect ∘ toRect = identity).
inherited
toAbsoluteRect() Rect
The bounding rectangle of the component in global coordinate space.
inherited
toLocal(Vector2 point) Vector2
Transform point from the parent's coordinate space into the local coordinates. This function is the inverse of positionOf().
inherited
toRect() Rect
Returns the bounding rectangle for this component.
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

Operators

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