Component that defines the position and direction properties of an entity via rendering a container node on the scene for its entity's other nodes.
Component that renders a sprite node as a child of its entity's transform node.
Component that renders a tile map node as a child of its entity's transform node.
Component that renders a label node as a child of its entity's transform node.
Component that controls the entity's velocity and its transform's translation based on that velocity.
Component that handles the collisions and controls the collider box of an entity.
Component that is used to establish collisions with the collider tile map of the entity's scene.
Component that is used to establish collisions with snappable objects like platforms and ladders. Snapping is a special behavior which helps with partially establishing collisions between moving objects.
Component that is used to play texture animation actions on the entity's sprite node. Uses SKAction
s for the actual animations and uses predefined trigger ids to switch between playing animations.
Component that is used to add and play audio effects on the entity's sprite node. Uses SKAudioNodes
s as clips for playing audio and uses predefined trigger ids to play/stop associated clips.
Component that is used to move its entity's kinematics body in the horizontal axis with the given movement style.
Component that is used to move its entity's kinematics body in the vertical axis with the given movement style.
Component that is used to move its entity's kinematics body in both axes in a circular manner.
Component that is used to move its entity with a simple harmonic motion. Manipulates the transform position directly rather than changing the kinematics body.
Component that is used to move its entity via interpolating the distance between entity's current position and a given target position. This movement component manipulates the transform position directly.
Component that is used to move its entity by CGPoint.approach(destination:maximumDelta:)
. This movement component manipulates the transform position directly.
Coordinates the transfer of input profile values to different ability components based on given player index.
Component that makes an entity gain a momentary vertical speed while on ground.
Component that makes an entity be effected by a lower gravity and have a lower vertical speed while contacting collision collider tiles which support wall jumping.
Component that makes an entity gain horizontal and vertical velocity from collision collider tiles which support wall jumping.
Component that makes an entity be affected by a lower gravity while it is falling down on air.
Component that makes an entity be able to gain positive vertical speed while on air.
Component that makes an entity gain extra horizontal speed which will last until taking a given distance.
Component that makes an entity be able to shoot projectile entities with the given entity template.
Component that gives an entity health and life properties, e.g. number of lives. This also gives ability to get damaged and die.
Component that gives an entity the ability to adjust the camera to focus it above the entity's node, if camera is already focused on this entity's transform.
Component that gives an entity the ability to ignore one way grounds while its entity is above them and pass through below the ground. This component is also used by PlayableCharacterComponent
which makes it possible to react to crouching via assigning a custom texture animation.
Component that gives an entity's rendered nodes the ability to visually blink. This is a common behavior that might come handy to indicate damage to an entity after it gets a hit. An entity's HealthComponent
, if there is any, automatically triggers blinking for this component when an entity takes damage.
Component that gives an entity the ability to gain speed in the given directions so that it bounces. Useful for post enemy/hazard contacts.
Component that gives an entity the ability to keep a reference for being in a conversation.
Component that gives an entity the ability to interact with ladders.
Component that gives an entity the ability to interact with swings.
Component that gives an entity the ability to be trigger camera focus on specified areas. When an entity with this component establishes contact with a camera focus area, camera will automatically focus on this area.
Component that gives an entity the ability to recognize the checkpoints and save them in a list upon contact.
Component that gives an entity the ability to be respawned when scene restarts at its checkpoint with checkpointId
given to this component.
Component that gives an entity the ability to observe other entities that gets into contact with specified areas in the scene, or around entity's position.
Component that adds an entity the ability to reposition its transform with a shake animation. Transform is reset to its original position after shake is done. It is required that transform of the entity of this component has usesProposedPosition
set to false
.
Component that makes an entity move on its own in the given axes and directions. Has better use cases when combined with another component like SelfChangeDirectionComponent
.
Component that makes a self moving entity change its movement direction based on preset conditions.
Component that makes a self moving entity change its movement direction based on preset conditions.
Component that makes an entity with observing capabilities to shoot towards the closest entity among its observed entities.
Component that makes an entity spawn other provided entities either periodically with a specified time interval, or when the entity observes specified entities. Latter requires the entity to have EntityObserverComponent
.
Snapping is a special behavior which helps with establishing collisions between moving objects. Add this component to your entity to make other objects with SnapperComponent
collide with it or snap on it. Specific snapping behavior for your entity should be implemented in your custom components. For an example of this see PlatformComponent
. An entity with Snappable component always gets updated before other custom entities.
Component that provides snapping behaviors of a platform.
Component that provides snapping behaviors of a ladder.
Component that provides snapping behaviors of a swing.
Component that makes an entity bounce other entities upwards that touch it from above.
Component that makes an entity fall off via gravity after a specified time getting touched by another entity from above.
Component that controls the camera node of a scene through an entity. In a GlideScene
, you don't need to initialize this component or a camera node as this is already done by the scene.
Component that makes an entity's transform follow the position of the camera in a scene.
It is required that transform of the entity of this component has usesProposedPosition
set to false
.
Component that is used to layout its entity's sprite node with given layout constraints that can be setup related to scene dimensions. It's recommended to use this component for entities that are not a child of the scene's camera(thus, not a part of gameplay) but should render UI related nodes like text, buttons and background images. This component makes those entities' nodes independent from camera's scaling and fixes their layout in respect to screen dimensions.
Component that repeats its entity's sprite node on a given axis and automatically scrolls through those repeated nodes with a given speed if desired. End result looks like sprite node of the entity is scrolling in an infinite fashion. This is useful for animating background layers of game levels to create some parallax effects.
Component that renders a light node as a child of its entity's transform node.
Component that makes an entity behave as a checkpoint of its scene. Entities which have CheckpointRecognizerComponent
will be able to add the checkpoint of this component to their list, when they contact with the collider of this component's entity. It is required that transform of the entity of this component has usesProposedPosition
set to false
.
Component that makes an entity trigger its scene's camera to zoom on a specified area when contacted with other entities which have CameraFocusAreaRecognizerComponent
.
Component that controls the flow of speech bubble entities for a given conversation in its entity's scene.
Component that controls the flow of text blocks and options in a single speech.
Component that keeps track of a focused entity among a group of focusable entities in a scene. This component listens for default menu input profiles to switch between focusable entities.
Component that makes an entity controllable by the focusables controller of a scene.
This component sets its entity's canBeRemoved
to 'true' after a given period of time starting with the first time this entity.
These protocols are used by different glide components mainly to influence to behavior if their entities in different ways. You can adopt to these protocols in your custom component implementations to implement similar behavior.
Basic and required component protocol that should be adopted by all components for full compatibility of glide's features.
Adopted by components to prepare their states for use in the rest of their scene's update cycle. This preparation happens after the component's update methods are called. This is useful behavior for some components to interpret what has changed since the update in the last frame to the current frame and prepare this change information to be used by other elements of the scene in the same frame. CollisionsController
of scene is an example element which gets use of such information from ColliderComponent
s.
When adopted, component will be informed of SKScene's didEvaluateActions()
. Can be used by components that want to perform logic after the actions in the scene has done processing. TextureAnimatorComponent
is an example component for this.
When adopted, a component can decide if its entity should be updated by the scene. Entity's didSkipUpdate()
will be called in the next frame if at least one of its UpdateControllingComponent
s return false
for its shouldEntityBeUpdated
value.
When adopted, a component can effect its entity's damage taking capabilities.
When adopted, a component can decide if its entity's components are allowed to process inputs. shouldBlockInputs
property of the entity should be used by each component that want to skip processing inputs.
When adopted, a component can decide if its entity can be removed by the scene as a result of a removal event. Entity will be removed if at least one of its RemovalControllingComponent
s return true
for its canEntityBeRemoved
value. An example scenario where this might be useful is, an entity needs to be removed but there is be an explosion animation that should be played. Adoption of this protocol by the component which will play this animation ensures that the entity will not be removed until the animation has done playing.
When adopted, a component can specify which z position container its entity's transform node should use as a parent. If multiple components of an entity specify a z position container only the container specified by the component with the lowest componentPriority
is taken into account.
When adopted, layout method in this protocol is called for the component to layout its rendered nodes in respect to screen size.
When adopted, a component can specify an offset value from its transform's position when the camera of the scene is focused on that transform.
When adopted, a component can specify an offset value from its transform's position when the camera of the scene is focused on that transform.
When adopted, an entity can manage its debug elements(e.g. debug nodes) in a more structured way. Note that functionality related to this component is only enabled if DEBUG
flag is on during compile time.