Documentation
¶
Index ¶
- Constants
- Variables
- func CanvasHeight() float32
- func CanvasWidth() float32
- func CreateWindow(title string, width, height int, fullscreen bool, msaa int)
- func CrossProduct(this, that Point) float32
- func CursorPos() (x, y float64)
- func DestroyWindow()
- func DotProduct(this, that Point) float32
- func Exit()
- func GameHeight() float32
- func GameWidth() float32
- func Headless() bool
- func LineTraceFraction(tracer, boundary *Line) float32
- func RegisterScene(s Scene)
- func Run(o RunOptions, defaultScene Scene)
- func RunIteration()
- func RunPreparation(defaultScene Scene)
- func ScaleOnResize() bool
- func SetCursor(c Cursor)
- func SetFPSLimit(limit int) error
- func SetHeadless(b bool)
- func SetOverrideCloseAction(value bool)
- func SetScaleOnResize(b bool)
- func SetScene(s Scene, forceNewWorld bool)
- func SetSceneByName(name string, forceNewWorld bool) error
- func SetTitle(title string)
- func SetVSync(enabled bool)
- func WindowHeight() float32
- func WindowSize() (w, h int)
- func WindowWidth() float32
- type AABB
- type Action
- type Axis
- type AxisKeyPair
- type AxisMouse
- type AxisMouseDirection
- type AxisPair
- type Button
- type Clock
- type Cursor
- type Exiter
- type FileLoader
- type Formats
- type Hider
- type ImageRGBA
- type InputManager
- type Key
- type KeyManager
- type KeyState
- type Line
- type Message
- type MessageHandler
- type MessageManager
- type Modifier
- type Mouse
- type MouseButton
- type MouseState
- type Point
- func (p *Point) Add(p2 Point)
- func (p *Point) AddScalar(s float32)
- func (p *Point) Equal(p2 Point) bool
- func (p *Point) Multiply(p2 Point)
- func (p *Point) MultiplyScalar(s float32)
- func (a *Point) Normalize() (Point, float32)
- func (p *Point) PointDistance(p2 Point) float32
- func (p *Point) PointDistanceSquared(p2 Point) float32
- func (a *Point) ProjectOnto(b Point) Point
- func (p *Point) Set(x, y float32)
- func (p *Point) Subtract(p2 Point)
- func (p *Point) SubtractScalar(s float32)
- type Resource
- type RunOptions
- type Scene
- type Shower
- type Trace
- type WindowResizeMessage
Constants ¶
const ( // DefaultVerticalAxis is the name of the default vertical axis, as used internally in `engo` when `StandardInputs` // is defined. DefaultVerticalAxis = "vertical" // DefaultHorizontalAxis is the name of the default horizontal axis, as used internally in `engo` when `StandardInputs` // is defined. DefaultHorizontalAxis = "horizontal" DefaultMouseXAxis = "mouse x" DefaultMouseYAxis = "mouse y" )
const ( // AxisMax is the maximum value a joystick or keypress axis will reach AxisMax float32 = 1 // AxisMin is the value an axis returns if there has been to state change. AxisNeutral float32 = 0 // AxisMin is the minimum value a joystick or keypress axis will reach AxisMin float32 = -1 )
const ( // KeyStateUp is a state for when the key is not currently being pressed KeyStateUp = iota // KeyStateDown is a state for when the key is currently being pressed KeyStateDown // KeyStateJustDown is a state for when a key was just pressed KeyStateJustDown // KeyStateJustUp is a state for when a key was just released KeyStateJustUp )
Variables ¶
var ( // Time is the active FPS counter Time *Clock // Input handles all input: mouse, keyboard and touch Input *InputManager // Mailbox is used by all Systems to communicate Mailbox *MessageManager )
var ( // Move is an action representing mouse movement Move = Action(0) // Press is an action representing a mouse press/click Press = Action(1) // Release is an action representing a mouse a release Release = Action(2) // Neutral represents a neutral action Neutral = Action(99) // Shift represents the shift modifier. // It is triggered when the shift key is pressed simultaneously with another key Shift = Modifier(0x0001) // Control represents the control modifier // It is triggered when the ctrl key is pressed simultaneously with another key Control = Modifier(0x0002) // Alt represents the alt modifier // It is triggered when the alt key is pressed simultaneously with another key Alt = Modifier(0x0004) // Super represents the super modifier // (Windows key on Microsoft Windows, Command key on Apple OSX, and varies on Linux) // It is triggered when the super key is pressed simultaneously with another key Super = Modifier(0x0008) )
var Files = &Formats{formats: make(map[string]FileLoader)}
Files manages global resource handling of registered file formats for game assets.
var ( // Gl is the current OpenGL context Gl *gl.Context )
Functions ¶
func CanvasHeight ¶
func CanvasHeight() float32
func CanvasWidth ¶
func CanvasWidth() float32
func CrossProduct ¶
CrossProduct returns the 2 dimensional cross product of this and that, which represents the magnitude of the three dimensional cross product
func DestroyWindow ¶
func DestroyWindow()
func DotProduct ¶
DotProduct returns the dot product between this and that
func Exit ¶
func Exit()
Exit is the safest way to close your game, as `engo` will correctly attempt to close all windows, handlers and contexts
func LineTraceFraction ¶
LineTraceFraction returns the trace fraction of tracer through boundary 1 means no intersection 0 means tracer's origin lies on the boundary line
func RegisterScene ¶
func RegisterScene(s Scene)
RegisterScene registers the `Scene`, so it can later be used by `SetSceneByName`
func Run ¶
func Run(o RunOptions, defaultScene Scene)
Run is called to create a window, initialize everything, and start the main loop. Once this function returns, the game window has been closed already. You can supply a lot of options within `RunOptions`, and your starting `Scene` should be defined in `defaultScene`.
func RunPreparation ¶
func RunPreparation(defaultScene Scene)
RunPreparation is called automatically when calling Open. It should only be called once.
func ScaleOnResize ¶
func ScaleOnResize() bool
ScaleOnResizes indicates whether or not the screen should resize (i.e. make things look smaller/bigger) whenever the window resized. If `false`, then the size of the screen does not affect the size of the things drawn - it just makes less/more objects visible
func SetCursor ¶
func SetCursor(c Cursor)
SetCursor sets the pointer of the mouse to the defined standard cursor
func SetFPSLimit ¶
SetFPSLimit can be used to change the value in the given `RunOpts` after already having called `engo.Run`.
func SetHeadless ¶
func SetHeadless(b bool)
SetHeadless sets the headless-mode variable - should be used before calling `Run`, and will be overridden by the value within the `RunOpts` once you call `engo.Run`.
func SetOverrideCloseAction ¶
func SetOverrideCloseAction(value bool)
SetOverrideCloseAction can be used to change the value in the given `RunOpts` after already having called `engo.Run`.
func SetScaleOnResize ¶
func SetScaleOnResize(b bool)
SetScaleOnResize can be used to change the value in the given `RunOpts` after already having called `engo.Run`.
func SetScene ¶
SetScene sets the currentScene to the given Scene, and optionally forcing to create a new ecs.World that goes with it.
func SetSceneByName ¶
SetSceneByName does a lookup for the `Scene` where its `Type()` equals `name`, and then sets it as current `Scene`
func WindowHeight ¶
func WindowHeight() float32
func WindowSize ¶
func WindowSize() (w, h int)
func WindowWidth ¶
func WindowWidth() float32
Types ¶
type AABB ¶
type AABB struct {
Min, Max Point
}
AABB describes two points of a rectangle: the upper-left corner and the lower-right corner. It should always hold that `Min.X <= Max.X` and `Min.Y <= Max.Y`.
type Axis ¶
type Axis struct {
// Name represents the name of the axis (Horizontal, Vertical)
Name string
// Pairs represents the axis pairs of this acis
Pairs []AxisPair
}
An Axis is an input which is a spectrum of values. An example of this is the horizontal movement in a game, or how far a joystick is pressed.
type AxisKeyPair ¶
An AxisKeyPair is a set of Min/Max values used for detecting whether or not a key has been pressed.
func (AxisKeyPair) Value ¶
func (keys AxisKeyPair) Value() float32
Value returns the value of a keypress.
type AxisMouse ¶
type AxisMouse struct {
// contains filtered or unexported fields
}
AxisMouse is an axis for a single x or y component of the Mouse. The value returned from it is the delta movement, since the previous call and it is not constrained by the AxisMin and AxisMax values.
func NewAxisMouse ¶
func NewAxisMouse(d AxisMouseDirection) *AxisMouse
NewAxisMouse creates a new Mouse Axis in either direction AxisMouseVert or AxisMouseHori.
type AxisMouseDirection ¶
type AxisMouseDirection uint
AxisMouseDirection is the direction (X or Y) which the mouse is being tracked for.
const ( // AxisMouseVert is vertical mouse axis AxisMouseVert AxisMouseDirection = 0 // AxisMouseHori is vertical mouse axis AxisMouseHori AxisMouseDirection = 1 )
type AxisPair ¶
type AxisPair interface {
Value() float32
}
An AxisPair is a set of Min/Max values which could possible be used by an Axis.
type Button ¶
A Button is an input which can be either JustPressed, JustReleased or Down. Common uses would be for, a jump key or an action key.
func (Button) JustPressed ¶
JustPressed checks whether an input was pressed in the previous frame.
func (Button) JustReleased ¶
JustReleased checks whether an input was released in the previous frame.
type Clock ¶
type Clock struct {
// contains filtered or unexported fields
}
A Clock is a measurement built in `engo` to measure the actual frames per seconds (framerate).
func NewClock ¶
func NewClock() *Clock
NewClock creates a new timer which allows you to measure ticks per seconds. Be sure to call `Tick()` whenever you want a tick to occur - it does not automatically tick each frame.
type Cursor ¶
type Cursor uint8
Cursor is a reference to standard cursors, to be used in conjunction with `SetCursor`. What they look like, is different for each platform.
const ( // CursorNone can be used to reset the cursor. CursorNone Cursor = iota // CursorArrow represents an arrow cursor CursorArrow // CursorCrosshair represents a crosshair cursor CursorCrosshair // CursorHand represents a hand cursor CursorHand // CursorIBeam represents an IBeam cursor CursorIBeam // CursorHResize represents a HResize cursor CursorHResize // CursorVResize represents a VResize cursor CursorVResize )
type Exiter ¶
type Exiter interface {
// Exit is called when the user or the system requests to close the game
// This should be used to cleanup or prompt user if they're sure they want to close
// To prevent the default action (close/exit) make sure to set OverrideCloseAction in
// your RunOpts to `true`. You should then handle the exiting of the program by calling
// engo.Exit()
Exit()
}
Exiter is an optional interface a Scene can implement, indicating it'll have custom behavior whenever the game get closed.
type FileLoader ¶
type FileLoader interface {
// Load loads the given resource into memory.
Load(url string, data io.Reader) error
// Unload releases the given resource from memory.
Unload(url string) error
// Resource returns the given resource, and an error if it didn't succeed.
Resource(url string) (Resource, error)
}
FileLoader implements support for loading and releasing file resources.
type Formats ¶
type Formats struct {
// contains filtered or unexported fields
}
Formats manages resource handling of registered file formats.
func (*Formats) Register ¶
func (formats *Formats) Register(ext string, loader FileLoader)
Register registers a resource loader for the given file format.
func (*Formats) SetRoot ¶
SetRoot can be used to change the default directory from `assets` to whatever you want.
Whenever `root` does not start with the directory `assets`, you will not be able to support mobile (Android/iOS) since they require you to put all resources within the `assets` directory. More information about that is available here: https://godoc.org/golang.org/x/mobile/asset
You can, however, use subfolders within the `assets` folder, and set those as `root`.
type Hider ¶
type Hider interface {
// Hide is called when an other Scene becomes active
Hide()
}
Hider is an optional interface a Scene can implement, indicating it'll have custom behavior whenever the Scene get hidden to make room fr other Scenes.
type ImageRGBA ¶
type ImageRGBA struct {
// contains filtered or unexported fields
}
func NewImageRGBA ¶
type InputManager ¶
type InputManager struct {
// Mouse is InputManager's reference to the mouse. It is recommended to use the
// Axis and Button system if at all possible.
Mouse Mouse
// contains filtered or unexported fields
}
InputManager contains information about all forms of input.
func NewInputManager ¶
func NewInputManager() *InputManager
NewInputManager holds onto anything input related for engo
func (*InputManager) Axis ¶
func (im *InputManager) Axis(name string) Axis
Axis retrieves an Axis with a specified name.
func (*InputManager) Button ¶
func (im *InputManager) Button(name string) Button
Button retrieves a Button with a specified name.
func (*InputManager) RegisterAxis ¶
func (im *InputManager) RegisterAxis(name string, pairs ...AxisPair)
RegisterAxis registers a new axis which can be used to retrieve inputs which are spectrums.
func (*InputManager) RegisterButton ¶
func (im *InputManager) RegisterButton(name string, keys ...Key)
RegisterButton registers a new button input.
type Key ¶
type Key int
Key correspends to a keyboard key
var ( // Grave represents the '`' keyboard key Grave Key = 192 // Dash represents the '-' keyboard key Dash Key = 189 // Apostrophe represents the `'` keyboard key Apostrophe Key = 222 // Semicolon represents the ';' keyboard key Semicolon Key = 186 // Equals reprsents the '=' keyboard key Equals Key = 187 // Comma represents the ',' keyboard key Comma Key = 188 // Period represents the '.' keyboard key Period Key = 190 // Slash represents the '/' keyboard key Slash Key = 191 // Backslash represents the '\' keyboard key Backslash Key = 220 //Backspace represents the backspace keyboard key Backspace Key = 8 // Tab represents the tab keyboard key Tab Key = 9 // CapsLock represents the caps lock keyboard key CapsLock Key = 20 // Space represents the space keyboard key Space Key = 32 // Enter represents the enter keyboard key Enter Key = 13 // Escape represents the escape keyboard key Escape Key = 27 // Insert represents the insert keyboard key Insert Key = 45 // PrintScreen represents the print screen keyboard key often // represented by 'Prt Scrn', 'Prt Scn', or 'Print Screen' PrintScreen Key = 42 // Delete represents the delete keyboard key Delete Key = 46 // PageUp represents the page up keyboard key PageUp Key = 33 // PageDown represents the page down keyboard key PageDown Key = 34 // Home represents the home keyboard key Home Key = 36 // End represents the end keyboard key End Key = 35 // Pause represents the pause keyboard key Pause Key = 19 // ScrollLock represents the scroll lock keyboard key ScrollLock Key = 145 // AllowLeft represents the arrow left keyboard key ArrowLeft Key = 37 // ArrowRight represents the arrow right keyboard key ArrowRight Key = 39 // ArrowDown represents the down arrow keyboard key ArrowDown Key = 40 // ArrowUp represents the up arrow keyboard key ArrowUp Key = 38 // LeftBracket represents the '[' keyboard key LeftBracket Key = 219 // LeftShift represents the left shift keyboard key LeftShift Key = 16 // LeftControl represents the left control keyboard key LeftControl Key = 17 // LeftSuper represents the left super keyboard key // (Windows key on Microsoft Windows, Command key on Apple OSX, and varies on Linux) LeftSuper Key = 73 // LeftAlt represents the left alt keyboard key LeftAlt Key = 18 // RightBracket represents the ']' keyboard key RightBracket Key = 221 // RightShift represents the right shift keyboard key RightShift Key = 16 // RightControl represents the right control keyboard key RightControl Key = 17 // RightSuper represents the right super keyboard key // (Windows key on Microsoft Windows, Command key on Apple OSX, and varies on Linux) RightSuper Key = 73 // RightAlt represents the left alt keyboard key RightAlt Key = 18 // Zero represents the '0' keyboard key Zero Key = 48 // One represents the '1' keyboard key One Key = 49 // Two represents the '2' keyboard key Two Key = 50 // Three represents the '3' keyboard key Three Key = 51 // Four represents the '4' keyboard key Four Key = 52 // Five represents the '5' keyboard key Five Key = 53 // Six represents the '6' keyboard key Six Key = 54 // Seven represents the '7' keyboard key Seven Key = 55 // Eight represents the '8' keyboard key Eight Key = 56 // Nine represents the '9' keyboard key Nine Key = 57 // F1 represents the 'F1' keyboard key F1 Key = 112 // F2 represents the 'F2' keyboard key F2 Key = 113 // F3 represents the 'F3' keyboard key F3 Key = 114 // F4 represents the 'F4' keyboard key F4 Key = 115 // F5 represents the 'F5' keyboard key F5 Key = 116 // F6 represents the 'F6' keyboard key F6 Key = 117 // F7 represents the 'F7' keyboard key F7 Key = 118 // F8 represents the 'F8' keyboard key F8 Key = 119 // F9 represents the 'F9' keyboard key F9 Key = 120 // F10 represents the 'F10' keyboard key F10 Key = 121 // F11 represents the 'F11' keyboard key F11 Key = 122 // F12 represents the 'F12' keyboard key F12 Key = 123 // A represents the 'A' keyboard key A Key = 65 // B represents the 'B' keyboard key B Key = 66 // C represents the 'C' keyboard key C Key = 67 // D represents the 'D' keyboard key ' D Key = 68 // E represents the 'E' keyboard key E Key = 69 // F represents the 'F' keyboard key F Key = 70 // G represents the 'G' keyboard key G Key = 71 // H represents the 'H' keyboard key H Key = 72 // I represents the 'I' keyboard key I Key = 73 // J represents the 'J' keyboard key J Key = 74 // K represents the 'K' keyboard key K Key = 75 // L represents the 'L' keyboard key L Key = 76 // M represents the 'M' keyboard key M Key = 77 // N represents the 'N' keyboard key N Key = 78 // O represents the 'O' keyboard key O Key = 79 // P represents the 'P' keyboard key P Key = 80 // Q represents the 'Q' keyboard key Q Key = 81 // R represents the 'R' keyboard key R Key = 82 // S represents the 'S' keyboard key S Key = 83 // T represents the 'T' keyboard key T Key = 84 // U represents the 'U' keyboard key U Key = 85 // V represents the 'V' keyboard key V Key = 86 // W represents the 'W' keyboard key W Key = 87 // X represents the 'X' keyboard key X Key = 88 // Y represents the 'Y' keyboard key Y Key = 89 // Z represents the 'Z' keyboard key Z Key = 90 // NumLock represents the NumLock keyboard key on the numpad NumLock Key = 144 // NumMultiply represents the NumMultiply keyboard key on the numpad NumMultiply Key = 106 // NumDivide represents the NumDivide keyboard key on the numpad NumDivide Key = 111 // NumAdd represents the NumAdd keyboard key on the numpad NumAdd Key = 107 // NumSubtract represents the NumSubtract keyboard key on the numpad NumSubtract Key = 109 // NumZero represents the NumZero keyboard key on the numpad NumZero Key = 96 // NumOne represents the NumOne keyboard key on the numpad NumOne Key = 97 // NumTwo represents the NumTwo keyboard key on the numpad NumTwo Key = 98 // NumThree represents the NumThree keyboard key on the numpad NumThree Key = 99 // NumFour represents the NumFour keyboard key on the numpad NumFour Key = 100 // NumFive represents the NumFive keyboard key on the numpad NumFive Key = 101 // NumSiz represents the NumSix keyboard key on the numpad NumSix Key = 102 // NumSeven represents the NumSeven keyboard key on the numpad NumSeven Key = 103 // NumEight represents the NumEight keyboard key on the numpad NumEight Key = 104 // NumNine represents the NumNine keyboard key on the numpad NumNine Key = 105 // NumDecimal represents the NumDecimal keyboard key on the numpad NumDecimal Key = 110 // NumEnter represents the NumEnter keyboard key on the numpad NumEnter Key = 13 )
those are default values for engo_js defined here because some of them are shared with engo_glfw. engo_glfw redefines the variables it needs to other values during init() so
type KeyManager ¶
type KeyManager struct {
// contains filtered or unexported fields
}
KeyManager tracks which keys are pressed and released at the current point of time.
func (*KeyManager) Set ¶
func (km *KeyManager) Set(k Key, state bool)
Set is used for updating whether or not a key is held down, or not held down.
type KeyState ¶
type KeyState struct {
// contains filtered or unexported fields
}
KeyState is used for detecting the state of a key press.
func (KeyState) JustPressed ¶
JustPressed returns whether a key was just pressed
func (KeyState) JustReleased ¶
JustReleased returns whether a key was just released
type Line ¶
Line describes a line segment on a 2 dimensional euclidean space it can also be thought of as a 2 dimensional vector with an offset
func (*Line) PointDistance ¶
PointDistance Returns the squared euclidean distance from the point p to the line segment l
func (*Line) PointDistanceSquared ¶
PointDistanceSquared returns the squared euclidean distance from the point p to the line segment l
type Message ¶
type Message interface {
Type() string
}
A Message is used to send messages within the MessageManager
type MessageHandler ¶
type MessageHandler func(msg Message)
A MessageHandler is used to dispatch a message to the subscribed handler.
type MessageManager ¶
type MessageManager struct {
// contains filtered or unexported fields
}
MessageManager manages messages and subscribed handlers
func (*MessageManager) Dispatch ¶
func (mm *MessageManager) Dispatch(message Message)
Dispatch sends a message to all subscribed handlers of the message's type
func (*MessageManager) Listen ¶
func (mm *MessageManager) Listen(messageType string, handler MessageHandler)
Listen subscribes to the specified message type and calls the specified handler when fired
type Mouse ¶
type Mouse struct {
X, Y float32
ScrollX, ScrollY float32
Action Action
Button MouseButton
Modifer Modifier
}
type MouseButton ¶
type MouseButton int
MouseButton corresponds to a mouse button.
const ( // MouseButtonLeft represents the left mouse button MouseButtonLeft MouseButton = 0 // MouseButtonRight represents the right mouse button MouseButtonRight MouseButton = 1 // MouseButtonMiddle represent the middle mosue button MouseButtonMiddle MouseButton = 2 // MouseButton4 represents the 4th mouse button MouseButton4 MouseButton = 3 // MouseButton5 represents the 5th mouse button MouseButton5 MouseButton = 4 // MouseButton6 represents the 6th mouse button MouseButton6 MouseButton = 5 // MouseButton7 represents the 7th mouse button MouseButton7 MouseButton = 6 // MouseButton4 represents the last mouse button MouseButtonLast MouseButton = 7 )
Mouse buttons
type MouseState ¶
type MouseState struct {
// X and Y are the coordinates of the Mouse, relative to the `Canvas`.
X, Y float32
// ScrollX and ScrollY are the amount of scrolling the user has done with his mouse wheel in the respective directions.
ScrollX, ScrollY float32
// Action indicates what the gamer currently has done with his mouse.
Action Action
// Button indicates which button is being pressed by the gamer (if any).
Button MouseButton
// Modifier indicates which modifier (shift, alt, etc.) has been pressed during the Action.
Modifier Modifier
}
MouseState represents the current state of the Mouse (or latest Touch-events).
type Point ¶
type Point struct {
X, Y float32
}
Point describes a coordinate in a 2 dimensional euclidean space it can also be thought of as a 2 dimensional vector from the origin
func LineIntersection ¶
LineIntersection returns the point where the line segments one and two intersect
func (*Point) Equal ¶
Equal indicates whether two points have the same value, avoiding issues with float precision
func (*Point) MultiplyScalar ¶
MultiplyScalar multiplies each component of p by s
func (*Point) Normalize ¶
Normalize returns the unit vector from a, and its magnitude. if you try to normalize the null vector, the return value will be null values
func (*Point) PointDistance ¶
PointDistance returns the euclidean distance between p and p2
func (*Point) PointDistanceSquared ¶
PointDistanceSquared returns the squared euclidean distance between p and p2
func (*Point) ProjectOnto ¶
ProjectOnto returns the vector produced by projecting a on to b
func (*Point) SubtractScalar ¶
SubtractScalar subtracts s from each component of p
type Resource ¶
type Resource interface {
// URL returns the uniform resource locator of the given resource.
URL() string
}
Resource represents a game resource, such as an image or a sound.
type RunOptions ¶
type RunOptions struct {
// NoRun indicates the Open function should return immediately, without looping
NoRun bool
// Title is the Window title
Title string
// HeadlessMode indicates whether or not OpenGL calls should be made
HeadlessMode bool
// Fullscreen indicates the game should run in fullscreen mode if run on a desktop
Fullscreen bool
Width, Height int
// VSync indicates whether or not OpenGL should wait for the monitor to swp the buffers
VSync bool
// ScaleOnResize indicates whether or not engo should make things larger/smaller whenever the screen resizes
ScaleOnResize bool
// FPSLimit indicates the maximum number of frames per second
FPSLimit int
// OverrideCloseAction indicates that (when true) engo will never close whenever the gamer wants to close the
// game - that will be your responsibility
OverrideCloseAction bool
// StandardInputs is an easy way to map common inputs to actions, such as "jump" being <SPACE>, and "action" being
// <ENTER>.
StandardInputs bool
// MSAA indicates the amount of samples that should be taken. Leaving it blank will default to 1, and you may
// use any positive value you wish. It may be possible that the operating system / environment doesn't support
// the requested amount. In that case, GLFW will (hopefully) pick the highest supported sampling count. The higher
// the value, the bigger the performance cost.
//
// Our `RenderSystem` automatically calls `gl.Enable(gl.MULTISAMPLE)` (which is required to make use of it), but
// if you're going to use your own rendering `System` instead, you will have to call it yourself.
//
// Also note that this value is entirely ignored in WebGL - most browsers enable it by default when available, and
// none of them (at time of writing) allow you to tune it.
//
// More info at https://www.opengl.org/wiki/Multisampling
// "With multisampling, each pixel at the edge of a polygon is sampled multiple times."
MSAA int
// AssetsRoot is the path where all resources (images, audio files, fonts, etc.) can be found. Leaving this at
// empty-string, will default this to `assets`.
//
// Whenever using any value that does not start with the directory `assets`, you will not be able to support
// mobile (Android/iOS), because they **require** all assets to be within the `assets` directory. You may however
// use any subfolder-structure within that `assets` directory.
AssetsRoot string
}
type Scene ¶
type Scene interface {
// Preload is called before loading resources
Preload()
// Setup is called before the main loop
Setup(*ecs.World)
// Type returns a unique string representation of the Scene, used to identify it
Type() string
}
Scene represents a screen ingame. i.e.: main menu, settings, but also the game itself
func CurrentScene ¶
func CurrentScene() Scene
CurrentScene returns the SceneWorld that is currently active
type Shower ¶
type Shower interface {
// Show is called whenever the other Scene becomes inactive, and this one becomes the active one
Show()
}
Shower is an optional interface a Scene can implement, indicating it'll have custom behavior whenever the Scene gets shown again after being hidden (due to switching to other Scenes)
type WindowResizeMessage ¶
WindowResizeMessage is a message that's being dispatched whenever the game window is being resized by the gamer
func (WindowResizeMessage) Type ¶
func (WindowResizeMessage) Type() string
Type returns the type of the current object "WindowResizeMessage"
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package common contains the most-common System implementations according to the `engo.io/ecs` definition, to be used in conjunction with `engo.io/engo`.
|
Package common contains the most-common System implementations according to the `engo.io/ecs` definition, to be used in conjunction with `engo.io/engo`. |
|
demos
|
|
|
animation
command
|
|
|
audio
command
|
|
|
edgescroller
command
|
|
|
entityscroller
command
|
|
|
exit
command
|
|
|
falling
command
|
|
|
headless
command
|
|
|
hello-world
command
|
|
|
hide
command
|
|
|
hud
command
|
|
|
incrementalcamera
command
|
|
|
input
command
|
|
|
keyboardscroller
command
|
|
|
mouse
command
|
|
|
mouse-follow
command
|
|
|
mouserotation
command
|
|
|
pong
command
|
|
|
rotation
command
|
|
|
scale
command
|
|
|
scenes
command
|
|
|
shapes
command
|
|
|
text
command
|
|
|
tilemap
command
|
|
|
zoom
command
|