package
1.0.8
Repository: https://github.com/engoengine/engo.git
Documentation: pkg.go.dev

# Functions

AddShader adds a shader to the list of shaders for initalization.
No description provided by the author
No description provided by the author
No description provided by the author
GetMasterVolume gets the master volume of the audio system.
ImageToNRGBA takes a given `image.Image` and converts it into an `image.NRGBA`.
IsIntersecting tells if two engo.AABBs intersect.
LoadedFont returns a Font that was previously loaded via CreatePreloaded.
LoadedPlayer retrieves the *audio.Player created from the URL.
LoadedSprite loads the texture-reference from `engo.Files`, and wraps it in a `*Texture`.
LoadedSpritesheet returns a Spritesheet that has already been created by New*.
LoadShader takes a Vertex-shader and Fragment-shader, compiles them and attaches them to a newly created glProgram.
MinimumTranslation tells how much an entity has to move to no longer overlap another entity.
NewAnimationComponent creates an AnimationComponent containing all given drawables.
NewAsymmetricSpritesheetFromFile creates a new AsymmetricSpriteSheet from a file name.
NewAsymmetricSpritesheetFromTexture creates a new AsymmetricSpriteSheet from a TextureResource.
NewImageObject creates a new ImageObject given the image.NRGBA reference.
NewKeyboardScroller creates a new KeyboardScroller system using the provided scrollSpeed, and horizontal and vertical axes.
NewSpritesheetFromFile is a simple handler for creating a new spritesheet from a file textureName is the name of a texture already preloaded with engo.Files.Add.
NewSpritesheetFromTexture creates a new spritesheet from a texture resource.
NewSpritesheetWithBorderFromFile creates a new spritesheet from a file This sheet has sprites of a uniform width and height, but also have borders around each sprite to prevent bleeding over.
NewSpritesheetWithBorderFromTexture creates a new spritesheet from a texture resource.
NewTextureResource sends the image to the GPU and returns a `TextureResource` for easy access.
NewTextureSingle sends the image to the GPU and returns a `Texture` with a viewport for single-sprite images.
SetBackground sets the OpenGL ClearColor to the provided color.
SetMasterVolume sets the master volume.
UploadTexture sends the image to the GPU, to be kept in GPU RAM.

# Constants

Angle is the angle the camera is rotated by.
ClampToBorder stretches the texture to the border of the viewpport.
ClampToEdge stretches the texture to the edge of the viewport.
CursorArrow is an arrow cursor.
CursorCrosshair is a crosshair cursor.
CursorHand is a hand cursor.
CursorHResize is the horizontal resize window cursor.
CursorIBeam is a text-editor I cursor.
CursorNone is no visible cursor.
CursorVResize is the vertical resize window cursor.
EdgeScrollerPriority is the priority for the EdgeScrollerSystem.
EntityScrollerPriority is the priority for the EntityScrollerSystem.
FilterLinear is a bilinear interpolation algorithm.
FilterNearest is a simple nearest neighbor algorithm.
KeyboardScrollerPriority is the priority for the KeyboardScrollerSystem.
MaxSprites is the maximum number of sprites that can comprise a single batch.
MirroredRepeat repeats a mirror image of the texture until the border of the viewport.
MouseRotatorPriority is the priority for the MouseRotatorSystem.
MouseSystemPriority is the priority of the MouseSystem.
MouseZoomerPriority is the priority for he MouseZoomerSystem.
NoRepeat does not repeat the texture.
RenderSystemPriority is the priority of the RenderSystem.
Repeat repeats the texture until the border of the viewport.
TriangleIsosceles indicates a Triangle where two sides have equal length.
TriangleRight indicates a Triangles where one angle is at 90 degrees.
XAxis is the x-axis of the camera.
YAxis is the y-axis of the camera.
ZAxis is the z-axis of the camera.

# Variables

BlendmapShader is a shader used to create blendmaps.
CameraBounds is the bounding box of the camera.
DefaultShader is the shader picked when no other shader is used.
HUDShader is the shader used for HUD elements.
LegacyHUDShader is the shader used for drawing shapes on the HUD.
LegacyShader is the shader used for drawing shapes.
MaxZoom is the farthest the camera position can be relative to the rendered surface.
MinZoom is the closest the camera position can be relative to the rendered surface.
SampleRate is the sample rate at which the player plays audio.
TextHUDShader is the shader used to draw fonts from a FontAtlas on the HUD.
TextShader is the shader used to draw fonts from a FontAtlas.
UnicodeCap is the amount of unicode characters the fonts will be able to use, starting from index 0.

# Structs

Animation represents properties of an animation.
AnimationComponent tracks animations of an entity it is part of.
AnimationSystem tracks AnimationComponents, advancing their current animation.
AudioComponent is a Component which is used by the AudioSystem.
AudioSystem is a System that allows for sound effects and / or music.
No description provided by the author
CameraMessage is a message that can be sent to the Camera (and other Systemers), to indicate movement.
CameraSystem is a System that manages the state of the virtual camera.
Circle is a basic circular form; the dimensions / radius are controlled via the `SpaceComponent`.
CollisionComponent keeps track of the entity's collisions.
CollisionMessage is sent whenever a collision is detected by the CollisionSystem.
CollisionSystem is a system that detects collisions between entities, sends a message if collisions are detected, and updates their SpaceComponent so entities cannot pass through Solids.
ComplexTriangles is a complex form, made out of triangles.
Curve is a beizer curve defined by the points provided.
EdgeScroller is a System that allows for scrolling when the cursor is near the edges of the window.
Ellipse represnets an ellpitical shape.
EntityScroller scrolls the camera to the position of a entity using its space component.
Font keeps track of a specific Font.
A FontAtlas is a representation of some of the Font characters, as an image.
FontResource is a wrapper for `*truetype.Font` which is being passed by the the `engo.Files.Resource` method in the case of `.ttf` files.
FPSSystem is a system for debugging that displays FPS to either the screen or the terminal.
FragmentShaderCompilationError is returned whenever the `LoadShader` method was unable to compile your Fragment-shader (GLSL).
No description provided by the author
ImageLayer contains a list of its images plus all default Tiled attributes.
ImageObject is a pure Go implementation of a `Drawable`.
KeyboardScroller is a System that allows for scrolling when certain keys are pressed.
Level is a parsed TMX level containing all layers and default Tiled attributes.
Mouse is the representation of the physical mouse.
MouseComponent is the location for the MouseSystem to store its results; to be used / viewed by other Systems.
MouseRotator is a System that allows for rotating the camera based on pressing down the scroll wheel.
MouseSystem listens for mouse events, and changes value for MouseComponent accordingly.
MouseZoomer is a System that allows for zooming when the scroll wheel is used.
NewCameraMessage is a message that is sent out whenever the camera system changes, such as when a new world is created or scenes are switched.
NotAnimationComponent is used to flag an entity as not in the AnimationSystem even if it has the proper components.
NotAudioComponent is used to flag an entity as not in the AudioSystem even if it has the proper components.
NotCollisionComponent is used to flag an entity as not in the CollisionSystem even if it has the proper components.
NotMouseComponent is used to flag an entity as not in the MouseSystem even if it has the proper components.
NotRenderComponent is used to flag an entity as not in the RenderSystem even if it has the proper components.
Object is a standard TMX object with all its default Tiled attributes.
ObjectLayer contains a list of its standard objects as well as a list of all its polyline objects.
Player holds the underlying audio data and plays/pauses/stops/rewinds/seeks it.
Property is any custom property.
Rectangle is a basic rectangular form; the dimensions are controlled via the `SpaceComponent`.
No description provided by the author
RenderComponent is the component needed to render an entity.
RenderSystem is the system that draws entities on the OpenGL surface.
No description provided by the author
Shape is a shape used for a SpaceComponent's hitboxes.
SpaceComponent keeps track of the position, size, and rotation of entities.
SpriteRegion holds the position data for each sprite on the sheet.
Spritesheet is a class that stores a set of tiles from a file, used by tilemaps and animations.
SubTexture represents a texture from a region in the TextureAtlas.
Text represents a string drawn onto the screen, as used by the `TextShader`.
Texture represents a texture loaded in the GPU RAM (by using OpenGL), which defined dimensions and viewport.
TextureAtlas is a collection of small textures grouped into a big image.
TextureAtlasResource contains reference to a loaded TextureAtlas and the texture of the main image.
No description provided by the author
TextureResource is the resource used by the RenderSystem.
Tile represents a tile in the TMX map.
TileLayer contains a list of its tiles plus all default Tiled attributes.
TMXCircle is a circle from the tmx map TODO: create a tile instead using the Shape (maybe a render component?).
TMXLine is a line from the tmx map TODO: create a tile or render coponent instead?.
TMXResource contains a level created from a Tile Map XML.
TMXText is text associated with a Tiled Map.
Triangle is a basic triangular form; the "point" of the triangle is pointing to the top.
VertexShaderCompilationError is returned whenever the `LoadShader` method was unable to compile your Vertex-shader (GLSL).

# Interfaces

Animationable is the required interface for AnimationSystem.AddByInterface method.
AnimationFace allows typesafe Access to an Annonymous child AnimationComponent.
Audioable is the required interface for the AudioSystem.AddByInterface method.
AudioFace allows typesafe access to an anonymouse child AudioComponent.
BasicFace is the means of accessing the ecs.BasicEntity class , it also has the ID method, to simplify, finding an item within a system.
Collisionable is the required interface for the CollisionSystem.AddByInterface method.
CollisionFace allows typesafe access to an anonymous CollisionComponent.
CullingShader when implemented can be used in the RenderSystem to test if an entity should be rendered.
Drawable is that which can be rendered to OpenGL.
Image holds data and properties of an .jpg, .gif, or .png file.
Mouseable is the required interface for the MouseSystem AddByInterface method.
MouseFace allows typesafe access to an Anonymous child MouseComponent.
NotAnimationable is an interface used to flag an entity as not in the AnimationSystem even if it has the proper components.
NotAudioable is an interface used to flag an entity as not in the AudioSystem even if it has the proper components.
NotCollisionable is an interface used to flag an entity as not in the CollisionSystem even if it has the proper components.
NotMouseable is an interface used to flag an entity as not in the MouseSystem even if it has the proper components.
NotRenderable is an interface used to flag an entity as not in the Rendersystem even if it has the proper components.
Renderable is the required interface for the RenderSystem.AddByInterface method.
RenderFace allows typesafe access to an anonymous RenderComponent.
Shader when implemented can be used in the RenderSystem as an OpenGl Shader.
SpaceFace allows typesafe access to an anonymous SpaceComponent.

# Type aliases

CameraAxis is the axis at which the Camera can/has to move.
CollisionGroup is intended to be used in bitwise comparisons The user is expected to create a const ( a = 1 << iota \n b \n c etc) for the different kinds of collisions they hope to use.
Cursor is a reference to a GLFW-cursor - to be used with the `SetCursor` method.
TextureRepeating is the method used to repeat a texture in OpenGL.
TriangleType is the type of triangle: Right or Isosceles.
ZoomFilter is a filter used when zooming in or out of a texture.