Libraries.Game.Game Documentation
The Game class is the heart of any game in Quorum. The basic Game class will just display a gray screen. To make your own game, you should make a new class that inherits from Game, and make your own versions of the CreateGame() and Update(number) actions. The example below will pop up an empty gray window.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
end
action Update(number seconds)
end
end
Inherits from: Libraries.Language.Object
Summary
Variable Summary Table
Variables | Description |
---|---|
boolean exitRequested | input for the gam |
Actions Summary Table
Actions | Description |
---|---|
Add(Libraries.Game.Graphics.DirectionalLight light) | This action will add a DirectionalLight to the currently active Layer3D. |
Add(Libraries.Interface.Item2D item) | The Add action will add an item to the Game. |
Add(Libraries.Game.Graphics.PointLight light) | This action will add a PointLight to the currently active Layer3D. |
Add(Libraries.Interface.Item3D item) | The Add action will add an item to the Game. |
AddCollisionListener(Libraries.Interface.Events.CollisionListener2D listener) | Adds a collision listener to the game that will listen for collisions between 2D game objects that have been flagged as collidable. |
AddCollisionListener(Libraries.Interface.Events.CollisionListener3D listener) | Adds a collision listener to the game that will listen for collisions between 3D game objects that have been flagged as collidable. |
AddControlActivationListener(Libraries.Interface.Events.ControlActivationListener listener) | |
AddFocusListener(Libraries.Interface.Events.FocusListener listener) | This action adds a FocusListener to the Game. |
AddInputTable(Libraries.Game.InputTable table) | This action adds an InputTable to the Game. |
AddKeyboardListener(Libraries.Interface.Events.KeyboardListener listener) | This action adds a KeyboardListener to the Game. |
AddLayer(integer index, Libraries.Game.Layer layer) | This action will add the given Layer to the Game at the given index. |
AddLayer(Libraries.Game.Layer layer) | This action will add a new Layer to the Game. |
AddMenuChangeListener(Libraries.Interface.Events.MenuChangeListener listener) | |
AddMouseListener(Libraries.Interface.Events.MouseListener listener) | This action adds a MouseListener to the Game. |
AddMouseMovementListener(Libraries.Interface.Events.MouseMovementListener listener) | This action adds a MouseMovementListener to the Game. |
AddMouseWheelListener(Libraries.Interface.Events.MouseWheelListener listener) | This action adds a MouseWheelListener to the Game. |
AddResizeListener(Libraries.Interface.Events.ResizeListener listener) | This action adds a ResizeListener to the Game. |
AddSelectionListener(Libraries.Interface.Events.SelectionListener listener) | This action adds a SelectionListener to the Game. |
AddTabChangeListener(Libraries.Interface.Events.TabChangeListener listener) | |
AddTextChangeListener(Libraries.Interface.Events.TextChangeListener listener) | This action adds a TextChangeListener to the Game. |
AddTextInputListener(Libraries.Interface.Events.TextInputListener listener) | This action adds a TextInputListener to the Game. |
AddTouchListener(Libraries.Interface.Events.TouchListener listener) | This action adds a TouchListener to the Game. |
AddTreeChangeListener(Libraries.Interface.Events.TreeChangeListener listener) | |
AddWindowFocusListener(Libraries.Interface.Events.WindowFocusListener listener) | |
Compare(Libraries.Language.Object object) | This action compares two object hash codes and returns an integer. |
ContinueGame() | This action is used by the Game to regularly handle core engine processes. |
CreateGame() | CreateGame is called when you first start the game, and is useful for setting up things that need to be initialized before they can be used, like loading Drawables. |
EnablePhysics2D(boolean flag) | This action will return a new AmbientLight object which contains the ambient lighting data of the currently active Layer3D. |
EnablePhysics3D(boolean flag) | This action will remove the ambient lighting from the currently active Layer3D. |
EnableResizing(boolean resize) | This action enables or disables resizing the game window by dragging the edges of the screen. |
EnableTextureAutoResizing(boolean resize) | This action enables or disables auto resizing of textures if the game window is resized. |
Equals(Libraries.Language.Object object) | This action determines if two objects are equal based on their hash code values. |
Exit() | The Exit action is used to tell the Game class to close the application after it completes the current iteration of the main loop. |
FindItem2DByName(text name) | This action finds the first Item2D that has been added to the Game with the given name and returns it. |
FindItem3DByName(text name) | This action finds the first Item3D that has been added to the Game with the given name and returns it. |
FocusWindow() | This action asks the operating system to give the main application window the focus. |
GetAccessibility() | |
GetAmbientLight() | This action will return a new AmbientLight object which contains the ambient lighting data of the currently active Layer3D. |
GetAndroidConfiguration() | This action will return the game's configuration for Android devices. |
GetAvailableResolutions() | This action will return an Array of ScreenResolution objects that describe available screen resolutions for this desktop platform. |
GetCamera2D() | This action will return the camera that is a part of the current Layer2D. |
GetCamera3D() | This action will return the camera that is a part of the current Layer3D. |
GetClipboard() | Not all implementations support a clipboard, but all displays support the operations so that they can be called everywhere. |
GetCurrentLayer2D() | This action will return the current Layer2D which will be used during actions that require a Layer if the user does not specify one, e. |
GetCurrentLayer3D() | This action will return the current Layer3D which will be used during actions that require a Layer if the user does not specify one, e. |
GetDefaultInputTable() | |
GetDesktopConfiguration() | This action will return the game's configuration for desktop platforms. |
GetDesktopResolution() | This action will return a ScreenResolution object that describes the screen resolution currently in use by the desktop (independent of the resolution used by the game). |
GetDialogLayerPool() | This action returns the pool of DialogLayers usable by the Game. |
GetDirectionalLight(integer index) | This action will get a DirectionalLight from the currently active Layer3D, which is stored at the given index inside the layer. |
GetDirectionalLights() | This action will return an iterator containing all of the DirectionalLight objects stored within the currently active Layer3D. |
GetEditManager() | This action gets the default EditManager from the system. |
GetFirstLetterNavigationTime() | This action finds the first Item3D that has been added to the Game with the given name and returns it. |
GetFocus() | This action returns the current Item that is focused. |
GetFocusManager() | This action returns the FocusManager to be used for the Game. |
GetFontManager() | This action returns the FontManager in use by the Game. |
GetGameName() | This action returns the name of the game displayed at the top of the window. |
GetHashCode() | This action gets the hash code for an object. |
GetInputTable(text key) | This action retrieves an InputTable with the matching identifier from the Game (if there is one). |
GetInterfaceScale() | The GetInterfaceScale action returns the scale of the user interface. |
GetLayerIterator() | This action will return an iterator containing the Game's layers. |
GetLayout() | The GetLayout action returns the layout that has been applied to the default Layer2D. |
GetPointLight(integer index) | This action will get a PointLight from the currently active Layer3D, which is stored at the given index inside the layer. |
GetPointLights() | This action will return an iterator containing all of the PointLight objects stored within the currently active Layer3D. |
GetSceneManager() | This action returns the manager used to save and load scenes in the Game. |
GetScreenHeight() | The GetScreenHeight action will return the height of the screen as an integer. |
GetScreenResolution() | This action will return the current ScreenResolution being used by the game engine. |
GetScreenWidth() | The GetScreenWidth action will return the width of the screen as an integer. |
GetSecondsBetweenFrames() | GetSecondsBetweenFrames will return the number of seconds that has passed between the current frame and the previous one. |
GetSimulationThreshold2D() | The SetSkybox action will set the currently active Layer3D to use the given Skybox. |
GetSkybox() | The GetSkybox action will return the Skybox in use by the currently active Layer3D. |
GetWebConfiguration() | This action will return the game's configuration for web platforms. |
InitializeLayers() | This action sets the game to use the default layers. |
IsColliding() | This allows us to know if collisions are on or off for the layer. |
IsWindowFocused() | This action determines whether or not the main application window has the focus on desktop platforms. |
IsWindowMaximized() | On desktop platforms, this action returns true if the application is in a maximized window, or false otherwise. |
IsWindowMinimized() | On desktop platforms, this action returns true if the application is currently minimized, or false otherwise. |
LoadScene(Libraries.Game.Scenes.Scene scene) | This loads a scene file into the game. |
LoadScene(text path) | This loads a scene file into the game. |
LoadScene(Libraries.System.File file) | This loads a scene file into the game. |
OnExit() | The OnExit action is called when the Game is about to close, either because the Exit action was called or because the user requested it (for example, by attempting to close the window on desktop platforms). |
Remove(Libraries.Game.Graphics.PointLight light) | This action will remove a PointLight from the currently active Layer3D. |
Remove(Libraries.Game.Graphics.DirectionalLight light) | This action will remove a DirectionalLight from the currently active Layer3D. |
Remove(Libraries.Interface.Item3D item) | The Remove action will remove an item that was put into the game using the Add action. |
Remove(Libraries.Interface.Item2D item) | The Remove action will remove an item that was put into the game using the Add action. |
RemoveAmbientLight() | This action will remove the ambient lighting from the currently active Layer3D. |
RemoveCollisionListener(Libraries.Interface.Events.CollisionListener2D listener) | Removes a 2D collision listener from the game. |
RemoveCollisionListener(Libraries.Interface.Events.CollisionListener3D listener) | Removes a 3D collision listener from the game. |
RemoveControlActivationListener(Libraries.Interface.Events.ControlActivationListener listener) | |
RemoveFocusListener(Libraries.Interface.Events.FocusListener listener) | This action removes a FocusListener from the Game. |
RemoveInputTable(text key) | This action removes the InputTable with the matching identifier from the Game (if there is one). |
RemoveKeyboardListener(Libraries.Interface.Events.KeyboardListener listener) | This action removes a KeyboardListener from the Game. |
RemoveLayer(integer index) | This action will remove the Layer stored in the Game at the given index within the internal layer array, where the first element (at index 0) of the array is the bottom layer, and further elements of the array are placed on top of previous elements. |
RemoveLayer(Libraries.Game.Layer layer) | This action will remove the given Layer from the Game. |
RemoveMenuChangeListener(Libraries.Interface.Events.MenuChangeListener listener) | |
RemoveMouseListener(Libraries.Interface.Events.MouseListener listener) | This action removes a MouseListener from the Game. |
RemoveMouseMovementListener(Libraries.Interface.Events.MouseMovementListener listener) | This action removes a MouseMovementListener from the Game. |
RemoveMouseWheelListener(Libraries.Interface.Events.MouseWheelListener listener) | This action removes a MouseWheelListener from the Game. |
RemoveResizeListener(Libraries.Interface.Events.ResizeListener listener) | This action removes a ResizeListener from the Game. |
RemoveSelectionListener(Libraries.Interface.Events.SelectionListener listener) | This action removes a SelectionListener from the Game. |
RemoveTabChangeListener(Libraries.Interface.Events.TabChangeListener listener) | |
RemoveTextChangeListener(Libraries.Interface.Events.TextChangeListener listener) | This action removes a TextChangeListener from the Game. |
RemoveTextInputListener(Libraries.Interface.Events.TextInputListener listener) | This action removes a TextInputListener from the Game. |
RemoveTouchListener(Libraries.Interface.Events.TouchListener listener) | This action removes a TouchListener from the Game. |
RemoveTreeChangeListener(Libraries.Interface.Events.TreeChangeListener listener) | |
RemoveWindowFocusListener(Libraries.Interface.Events.WindowFocusListener listener) | |
SaveScene(Libraries.System.File file) | This action saves everything currently in the game to a Scene file, which it returns, and additionally saves this scene to disk. |
SaveScene() | This action saves all of the items currently in the game to a Scene object, which can then be saved. |
SetAccessibility(Libraries.Interface.Accessibility accessibilityManager) | |
SetAmbientLight(Libraries.Game.Graphics.AmbientLight light) | This action will set the ambient light on the currently active Layer3D. |
SetApplicationIcon(Libraries.System.File file) | This action sets the program's icon, which appears on the taskbar and on the window frame. |
SetCamera2D(Libraries.Game.Graphics.Camera cam) | This action will set the camera that is being used by the current Layer2D. |
SetCamera3D(Libraries.Game.Graphics.Camera cam) | This action will set the camera that is being used by the current Layer3D. |
SetClipboard(text value) | Not all implementations support a clipboard, but all displays support the operations so that they can be called everywhere. |
SetColliding(boolean collide) | This allows us to turn collisions on or off for the layer. |
SetColorFilter(Libraries.Game.Graphics.Color color) | Using SetColorFilter will tint all drawn objects on the currently active Layer2D that do not have their own custom color tint. |
SetColorFilter(number red, number green, number blue, number alpha) | SetColorFilter can also be called using four number parameters instead of a color object. |
SetConfiguration(Libraries.Game.DesktopConfiguration config) | This action will set the game configuration when run on desktop platforms. |
SetConfiguration(Libraries.Game.WebConfiguration config) | This action will set the game configuration when run on web browsers. |
SetConfiguration(Libraries.Game.AndroidConfiguration config) | This action will set the game configuration when run on an Android device. |
SetCurrentLayer2D(Libraries.Game.Layer2D layer) | This action will set the currently active Layer2D. |
SetCurrentLayer3D(Libraries.Game.Layer3D layer) | This action will set the currently active Layer3D. |
SetDefaultInputTable(Libraries.Game.InputTable table) | |
SetEditManager(Libraries.Interface.Undo.EditManager edits) | This action sets the default EditManager from the system to a custom one. |
SetFirstLetterNavigationTime(number firstLetterNavigationTime) | This action finds the first Item2D that has been added to the Game with the given name and returns it. |
SetFocus(Libraries.Interface.Item item) | This action sets the focus on the given item. |
SetFocusManager(Libraries.Game.FocusManager focus) | This action sets the FocusManager to be used for the Game. |
SetFontManager(Libraries.Game.Graphics.Fonts.FontManager fontManager) | This action sets the FontManager to be used for the Game. |
SetFullScreen(boolean fullScreen) | This action sets whether the game should launch in full screen or windowed mode on desktop platforms (e. |
SetGameName(text name) | This action sets the name of the game displayed at the top of the window. |
SetGravity2D(Libraries.Compute.Vector2 gravity) | This action will return an iterator containing all of the PointLight objects stored within the currently active Layer3D. |
SetGravity2D(number gravityX, number gravityY) | This action will return an iterator containing all of the DirectionalLight objects stored within the currently active Layer3D. |
SetGravity3D(Libraries.Compute.Vector3 gravity) | This action will get a PointLight from the currently active Layer3D, which is stored at the given index inside the layer. |
SetGravity3D(number gravityX, number gravityY, number gravityZ) | This action will get a DirectionalLight from the currently active Layer3D, which is stored at the given index inside the layer. |
SetInterfaceScale(number scale) | The SetInterfaceScale action sets the scale of the user interface. |
SetLayer(integer index, Libraries.Game.Layer layer) | This action will set the given index to use the given Layer, overwriting any Layer that was already at that index. |
SetLayout(Libraries.Interface.Layouts.Layout layout) | The SetLayout action is used to apply a layout to all Controls on the default Layer2D. |
SetSceneManager(Libraries.Game.Scenes.SceneManager scene) | This action sets the manager used to save and load scenes in the Game. |
SetScreenResolution(Libraries.Game.ScreenResolution resolution, boolean adjustCameras) | This action will set a game running on a desktop platform to use the given ScreenResolution. |
SetScreenResolution(Libraries.Game.ScreenResolution resolution) | This action will set a game running on a desktop platform to use the given ScreenResolution. |
SetScreenSize(integer width, integer height, boolean adjustCameras) | This action sets windowed size of the game (the default size is 800 by 600). |
SetScreenSize(integer width, integer height) | This action sets windowed size of the game (the default size is 800 by 600). |
SetSimulationThreshold2D(number threshold) | The GetSkybox action will return the Skybox in use by the currently active Layer3D. |
SetSkybox(Libraries.Game.Graphics.Skybox skybox) | The SetSkybox action will set the currently active Layer3D to use the given Skybox. |
SetVSync(boolean vSync) | This action enables or disables vSync in the game. |
SetWebCanvasName(text name) | The SetWebCanvasName action determines which canvas to use on a webpage. |
SetWindowMaximized(boolean maximized) | This action maximizes the screen, or restores a maximized screen to its original size. |
SetWindowMinimized(boolean minimized) | This action minimizes the screen, or restores a minimized screen to its original size. |
StartGame() | The StartGame action will start your game. |
Update(number time) | The Update action is where most of the game's logic goes. |
UseDesktopResolution(boolean adjustCameras) | UseDesktopResolution will set the game to use the same display settings as the desktop's current screen resolution (independent of the game). |
UseDesktopResolution() | UseDesktopResolution will set the game to use the same display settings as the desktop's current screen resolution (independent of the game). |
Actions Documentation
Add(Libraries.Game.Graphics.DirectionalLight light)
This action will add a DirectionalLight to the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
end
end
Parameters
- Libraries.Game.Graphics.DirectionalLight: The light to add to the currently active Layer3D.
Add(Libraries.Interface.Item2D item)
The Add action will add an item to the Game. More specifically, the item will be added to the current default Layer2D. This will make the game handle the item for many tasks. For example, adding a Drawable will make it draw on the screen.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
class Main is Game
Drawable bunny
action Main
StartGame()
end
action CreateGame
bunny:Load("Images/Rabbit.png")
Add(bunny)
end
end
Parameters
- Libraries.Interface.Item2D: The item to be added to the current default Layer2D.
Add(Libraries.Game.Graphics.PointLight light)
This action will add a PointLight to the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
end
end
Parameters
- Libraries.Game.Graphics.PointLight: The light to add to the currently active Layer3D.
Add(Libraries.Interface.Item3D item)
The Add action will add an item to the Game. More specifically, the item will be added to the current default Layer3D. This will make the game handle the item for many tasks. For example, adding a Model will make it draw on the screen.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
class Main is Game
Model car
action Main
StartGame()
end
action CreateGame
car:Load("sedan.g3db")
Add(car)
end
end
Parameters
- Libraries.Interface.Item3D: The item to be added to the current default Layer3D.
AddCollisionListener(Libraries.Interface.Events.CollisionListener2D listener)
Adds a collision listener to the game that will listen for collisions between 2D game objects that have been flagged as collidable. This listener can respond to collisions by implementing the BeginCollision and FinishCollision actions.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Item2D
use Libraries.Interface.Events.CollisionListener2D
use Libraries.Interface.Events.CollisionEvent2D
class Main is Game, CollisionListener2D
Item2D item1
Item2D item2
action Main
StartGame()
end
action CreateGame
AddCollisionListener(me)
item1:SetCollidable(true)
item2:SetCollidable(true)
end
action BeginCollision(CollisionEvent2D event)
end
action FinishCollision(CollisionEvent3D event)
end
end
Parameters
AddCollisionListener(Libraries.Interface.Events.CollisionListener3D listener)
Adds a collision listener to the game that will listen for collisions between 3D game objects that have been flagged as collidable. This listener can respond to collisions by implementing the BeginCollision and FinishCollision actions.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Item3D
use Libraries.Interface.Events.CollisionListener3D
use Libraries.Interface.Events.CollisionEvent3D
class Main is Game, CollisionListener3D
Item3D item1
Item3D item2
action Main
StartGame()
end
action CreateGame
AddCollisionListener(me)
item1:SetCollidable(true)
item2:SetCollidable(true)
end
action BeginCollision(CollisionEvent3D event)
end
action FinishCollision(CollisionEvent3D event)
end
end
Parameters
AddControlActivationListener(Libraries.Interface.Events.ControlActivationListener listener)
Parameters
AddFocusListener(Libraries.Interface.Events.FocusListener listener)
This action adds a FocusListener to the Game. Whenever the focus changes, the FocusListener will be informed via a FocusEvent.
Parameters
- Libraries.Interface.Events.FocusListener: The FocusListener to add to the Game.
AddInputTable(Libraries.Game.InputTable table)
This action adds an InputTable to the Game. If at any point the currently focused Item has an input group that matches the identifier of the table, the table will be used to trigger Behaviors.
Parameters
AddKeyboardListener(Libraries.Interface.Events.KeyboardListener listener)
This action adds a KeyboardListener to the Game. The listener will be notified of keys being pressed and released.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.KeyboardListener
class Main is Game
KeyboardListener listener
action Main
StartGame()
end
action CreateGame
AddKeyboardListener(listener)
end
end
Parameters
- Libraries.Interface.Events.KeyboardListener: The KeyboardListener to add to the Game.
AddLayer(integer index, Libraries.Game.Layer layer)
This action will add the given Layer to the Game at the given index. Layers are handled (e.g. updated, drawn, etc.) in the order they're added, starting at index 0 with additional layers placed at higher indices.
Parameters
- integer index: The index to place the Layer at.
- Libraries.Game.Layer: The Layer to be added to the Game. use Libraries.Game.Game use Libraries.Game.Layer2D class Main is Game action Main StartGame() end action CreateGame // This will add the layer at index 0, making it the first layer drawn. Layer2D layer AddLayer(0, layer) end action Update(number seconds) end end
AddLayer(Libraries.Game.Layer layer)
This action will add a new Layer to the Game. It will be added on top of all other layers currently in the game.
Parameters
- Libraries.Game.Layer: The Layer to be added to the Game. use Libraries.Game.Game use Libraries.Game.Layer2D class Main is Game action Main StartGame() end action CreateGame Layer2D layer AddLayer(layer) end action Update(number seconds) end end
AddMenuChangeListener(Libraries.Interface.Events.MenuChangeListener listener)
Parameters
AddMouseListener(Libraries.Interface.Events.MouseListener listener)
This action adds a MouseListener to the Game. The mouse listener will be notified of mouse buttons being clicked and released, so long as the event is not handled by any listeners in the layers.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseListener
class Main is Game
MouseListener listener
action Main
StartGame()
end
action CreateGame
AddMouseListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseListener: The MouseListener to add to the Game.
AddMouseMovementListener(Libraries.Interface.Events.MouseMovementListener listener)
This action adds a MouseMovementListener to the Game. The listener will be notified of mouse movement and dragging, so long as the event is not handled by any listeners in the layers.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseMovementListener
class Main is Game
MouseMovementListener listener
action Main
StartGame()
end
action CreateGame
AddMouseMovementListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseMovementListener: The MouseMovementListener to add to the Game.
AddMouseWheelListener(Libraries.Interface.Events.MouseWheelListener listener)
This action adds a MouseWheelListener to the Game. The listener will be notified of mouse wheel scrolling, so long as the event is not handled by any listeners in the layers.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseWheelListener
class Main is Game
MouseWheelListener listener
action Main
StartGame()
end
action CreateGame
AddMouseWheelListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseWheelListener: The MouseWheelListener to add to the Game.
AddResizeListener(Libraries.Interface.Events.ResizeListener listener)
This action adds a ResizeListener to the Game. The listener will be notified when the size of the Game rendering space changes size, such as a window being resized or made fullscreen, or a phone rotating orientation.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.ResizeListener
class Main is Game
ResizeListener listener
action Main
StartGame()
end
action CreateGame
AddResizeListener(listener)
end
end
Parameters
- Libraries.Interface.Events.ResizeListener: The ResizeListener to add to the Game.
AddSelectionListener(Libraries.Interface.Events.SelectionListener listener)
This action adds a SelectionListener to the Game. Whenever a Selection is changed, the SelectionListener will be informed via a SelectionEvent.
Parameters
- Libraries.Interface.Events.SelectionListener: The SelectionListener to add to the Game.
AddTabChangeListener(Libraries.Interface.Events.TabChangeListener listener)
Parameters
AddTextChangeListener(Libraries.Interface.Events.TextChangeListener listener)
This action adds a TextChangeListener to the Game. When text is changed (such as in a TextBox) the TextChangeListener will be informed via a TextChangeEvent.
Parameters
- Libraries.Interface.Events.TextChangeListener: The TextChangeListener to add to the Game.
AddTextInputListener(Libraries.Interface.Events.TextInputListener listener)
This action adds a TextInputListener to the Game. The listener will be notified when the Game receives textual input from the keyboard.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.TextInputListener
class Main is Game
TextInputListener listener
action Main
StartGame()
end
action CreateGame
AddTextInputListener(listener)
end
end
Parameters
- Libraries.Interface.Events.TextInputListener: The TextInputListener to add to the Game.
AddTouchListener(Libraries.Interface.Events.TouchListener listener)
This action adds a TouchListener to the Game. The touch listener will be notified when the user interacts with a touch screen, so long as the event is not handled by any items in the layers.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.TouchListener
class Main is Game
TouchListener listener
action Main
StartGame()
end
action CreateGame
AddTouchListener(listener)
end
end
Parameters
- Libraries.Interface.Events.TouchListener: The TouchListener to add to the Game.
AddTreeChangeListener(Libraries.Interface.Events.TreeChangeListener listener)
Parameters
AddWindowFocusListener(Libraries.Interface.Events.WindowFocusListener listener)
Parameters
Compare(Libraries.Language.Object object)
This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.
Example Code
Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
Parameters
- Libraries.Language.Object: The object to compare to.
Return
integer: The Compare result, Smaller, Equal, or Larger.
ContinueGame()
This action is used by the Game to regularly handle core engine processes. It is automatically called by the Game when necessary, and should never be used by users.
CreateGame()
CreateGame is called when you first start the game, and is useful for setting up things that need to be initialized before they can be used, like loading Drawables.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
class Main is Game
Drawable bunny
action Main
StartGame()
end
action CreateGame
bunny:Load("Rabbit.png")
Add(bunny)
end
end
EnablePhysics2D(boolean flag)
This action will return a new AmbientLight object which contains the ambient lighting data of the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
AmbientLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
myLight = GetAmbientLight()
end
end
Parameters
EnablePhysics3D(boolean flag)
This action will remove the ambient lighting from the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
RemoveAmbientLight()
end
end
Parameters
EnableResizing(boolean resize)
This action enables or disables resizing the game window by dragging the edges of the screen. Passing a value of true enables it, a value of false disables it. Resizing is disabled by default. It is only relevant for games which are run on desktops. This action should be called before calling StartGame().
Example Code
use Libraries.Game.Game
class Main is Game
action Main
EnableResizing(true)
StartGame()
end
end
Parameters
- boolean resize: Whether or not the game window should be resizable.
EnableTextureAutoResizing(boolean resize)
This action enables or disables auto resizing of textures if the game window is resized. Passing a value of true enables it, a value of false disables it. Texture auto resizing is enabled by default. This action should be called before calling StartGame(). This option is only relevant on desktop platforms.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
EnableTextureAutoResizing(false)
StartGame()
end
end
Parameters
- boolean resize: Whether or not to automatically resize textures on window resizing.
Equals(Libraries.Language.Object object)
This action determines if two objects are equal based on their hash code values.
Example Code
use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
Parameters
- Libraries.Language.Object: The to be compared.
Return
boolean: True if the hash codes are equal and false if they are not equal.
Exit()
The Exit action is used to tell the Game class to close the application after it completes the current iteration of the main loop.
Example Code
use Libraries.Game.Game
class Main is Game
number timer = 0
action Main
StartGame()
end
action Update(number time)
timer = timer + time
if timer > 3
Exit()
output "Exiting the game!"
end
end
end
FindItem2DByName(text name)
This action finds the first Item2D that has been added to the Game with the given name and returns it. If no Item2D with the given name can be found, this action returns undefined instead.
Parameters
- text name: The name of the Item to be found.
Return
Libraries.Interface.Item2D: The first Item2D added to the Game which has the given name, or undefined if no such item can be found.
FindItem3DByName(text name)
This action finds the first Item3D that has been added to the Game with the given name and returns it. If no Item3D with the given name can be found, this action returns undefined instead.
Parameters
- text name: The name of the Item to be found.
Return
Libraries.Interface.Item3D: The first Item3D added to the Game which has the given name, or undefined if no such item can be found
FocusWindow()
This action asks the operating system to give the main application window the focus. This only works on desktop platforms - on other platforms, this call is ignored.
GetAccessibility()
Return
Libraries.Interface.Accessibility:
GetAmbientLight()
This action will return a new AmbientLight object which contains the ambient lighting data of the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
AmbientLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
myLight = GetAmbientLight()
end
end
Return
Libraries.Game.Graphics.AmbientLight: The AmbientLight of the currently active Layer3D.
GetAndroidConfiguration()
This action will return the game's configuration for Android devices.
Example Code
use Libraries.Game.Game
use Libraries.Game.AndroidConfiguration
class Main is Game
action Main
AndroidConfiguration configuration = GetAndroidConfiguration()
configuration:defaultOrientation = configuration:PORTRAIT
StartGame()
end
end
Return
Libraries.Game.AndroidConfiguration: The current AndroidConfiguration.
GetAvailableResolutions()
This action will return an Array of ScreenResolution objects that describe available screen resolutions for this desktop platform. If this action is called on a non-desktop platform, the returned array will be undefined.
Example Code
use Libraries.Game.Game
use Libraries.Game.ScreenResolution
use Libraries.Containers.Array
class Main is Game
action Main
StartGame()
end
action CreateGame
Array<ScreenResolution> array = GetAvailableResolutions()
output "The following resolutions are supported by the monitor:"
integer counter = 0
repeat while counter < array:GetSize()
ScreenResolution resolution = array:Get(counter)
output ""
output "Resolution #" + counter
output "Dimensions: " + resolution:GetWidth() + " x " + resolution:GetHeight()
output "Refresh Rate: " + resolution:GetFrequency()
output "Bits per Pixel: " + resolution:GetBitsPerPixel()
output "Supports Fullscreen: " + resolution:IsFullscreen()
counter = counter + 1
end
end
end
Return
Libraries.Containers.Array: An array of ScreenResolutions that can be used by the desktop display.
GetCamera2D()
This action will return the camera that is a part of the current Layer2D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Camera
class Main is Game
Camera camera = undefined
action Main
StartGame()
end
action CreateGame
camera = GetCamera2D()
end
end
Return
Libraries.Game.Graphics.Camera: The Camera in use by the currently active Layer2D.
GetCamera3D()
This action will return the camera that is a part of the current Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Camera
class Main is Game
Camera camera = undefined
action Main
StartGame()
end
action CreateGame
camera = GetCamera3D()
end
end
Return
Libraries.Game.Graphics.Camera: The Camera in use by the currently active Layer3D.
GetClipboard()
Not all implementations support a clipboard, but all displays support the operations so that they can be called everywhere. If an implementation supports a clipboard, the appopriate system mechanisms are handled automatically. The example here would output whatever is currently on the clipboard.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
output GetClipboard()
end
action Update(number seconds)
end
end
Return
text: this action returns text from the system clipboard.
GetCurrentLayer2D()
This action will return the current Layer2D which will be used during actions that require a Layer if the user does not specify one, e.g., using the Add(Item2D) action.
Example Code
use Libraries.Game.Game
use Libraries.Game.Layer2D
class Main is Game
Layer2D activeLayer = undefined
action Main
StartGame()
end
action CreateGame
activeLayer = GetCurrentLayer2D()
end
end
Return
Libraries.Game.Layer2D: The currently active Layer2D.
GetCurrentLayer3D()
This action will return the current Layer3D which will be used during actions that require a Layer if the user does not specify one, e.g., using the Add(Item3D) action.
Example Code
use Libraries.Game.Game
use Libraries.Game.Layer3D
class Main is Game
Layer3D activeLayer = undefined
action Main
StartGame()
end
action CreateGame
activeLayer = GetCurrentLayer3D()
end
end
Return
Libraries.Game.Layer3D: The currently active Layer3D.
GetDefaultInputTable()
Return
GetDesktopConfiguration()
This action will return the game's configuration for desktop platforms.
Example Code
use Libraries.Game.Game
use Libraries.Game.DesktopConfiguration
class Main is Game
action Main
DesktopConfiguration configuration = GetDesktopConfiguration()
output "The default width and height of the Game are " + configuration:width + ", " + configuration:height
StartGame()
end
end
Return
Libraries.Game.DesktopConfiguration: The current DesktopConfiguration.
GetDesktopResolution()
This action will return a ScreenResolution object that describes the screen resolution currently in use by the desktop (independent of the resolution used by the game). This is only effective on desktop platforms - using this action on non-desktop platforms will return undefined.
Example Code
use Libraries.Game.Game
use Libraries.Game.ScreenResolution
class Main is Game
action Main
StartGame()
end
action CreateGame
ScreenResolution resolution = GetDesktopResolution()
output "The dimensions of the desktop's resolution is " + resolution:GetWidth() + " x " + resolution:GetHeight()
end
end
Return
Libraries.Game.ScreenResolution: A ScreenResoluton object describing the desktop's resolution.
GetDialogLayerPool()
This action returns the pool of DialogLayers usable by the Game. This should never be called manually -- instead, when using Dialogs, use the Show() and Hide() calls to display or close the Dialog. This action is used internally by the Game engine.
Return
Libraries.Game.DialogLayerPool:
GetDirectionalLight(integer index)
This action will get a DirectionalLight from the currently active Layer3D, which is stored at the given index inside the layer. If there are no DirectionalLights within the layer, or if the index is out of bounds, then an error will be thrown.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
DirectionalLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
myLight = GetDirectionalLight(0)
end
end
Parameters
- integer index: The index to retrieve the DirectionalLight from.
Return
Libraries.Game.Graphics.DirectionalLight:
GetDirectionalLights()
This action will return an iterator containing all of the DirectionalLight objects stored within the currently active Layer3D.
Return
Libraries.Containers.Iterator: An Iterator containing all DirectionalLights on the currently active Layer3D.
GetEditManager()
This action gets the default EditManager from the system.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Undo.EditManager
class Main is Game
action Main
StartGame()
end
action CreateGame
EditManager edits = GetEditManager()
end
action Update(number seconds)
end
end
Return
Libraries.Interface.Undo.EditManager: The EditManager
GetFirstLetterNavigationTime()
This action finds the first Item3D that has been added to the Game with the given name and returns it. If no Item3D with the given name can be found, this action returns undefined instead.
Return
number: The first Item3D added to the Game which has the given name, or undefined if no such item can be found
GetFocus()
This action returns the current Item that is focused.
Return
Libraries.Interface.Item: The currently focused Item.
GetFocusManager()
This action returns the FocusManager to be used for the Game. The FocusManager is responsible for moving focus between Items, which is essential for GUIs to function correctly.
Return
GetFontManager()
This action returns the FontManager in use by the Game. The FontManager is responsible for loading and storing font information.
Return
Libraries.Game.Graphics.Fonts.FontManager:
GetGameName()
This action returns the name of the game displayed at the top of the window. The default name is "Game".
Example Code
use Libraries.Game.Game
class Main is Game
action Main
output "The default name is " + GetGameName()
SetGameName("Mariachi Band Simulator 3000")
output "The new name is " + GetGameName()
StartGame()
end
end
Return
text: The name displayed on the Game window.
GetHashCode()
This action gets the hash code for an object.
Example Code
Object o
integer hash = o:GetHashCode()
Return
integer: The integer hash code of the object.
GetInputTable(text key)
This action retrieves an InputTable with the matching identifier from the Game (if there is one). If there is no InputTable with this identifier, the action will return undefined.
Parameters
Return
GetInterfaceScale()
The GetInterfaceScale action returns the scale of the user interface. Larger scaling values make each interface component larger. When the interface is scaled in this way, components that can be re-rendered at a higher resolution (such as fonts) will do so. Note that this represents the standard scale in use by the default 2D layer, and it will not necessarily reflect the scale of every single component.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Layouts.FlowLayout
use Libraries.Interface.Controls.Button
class Main is Game
action Main
StartGame()
end
action CreateGame
FlowLayout layout
SetLayout(layout)
Button button1
button1:SetName("My Button")
Add(button1)
output "The default interface scale is " + GetInterfaceScale()
end
end
Return
number: The current interface rendering scale.
GetLayerIterator()
This action will return an iterator containing the Game's layers. The first Layer in the iterator will be the bottom Layer, and each following Layer in the iterator will be the Layer on top of the previous one.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.OrthographicCamera
class Main is Game
action Main
StartGame()
end
action CreateGame
OrthographicCamera camera
SetCamera2D(camera)
end
end
Return
Libraries.Containers.Iterator: An Iterator containing all of the Layers added to the Game.
GetLayout()
The GetLayout action returns the layout that has been applied to the default Layer2D.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Layouts.Layout
use Libraries.Interface.Layouts.FlowLayout
use Libraries.Interface.Controls.Button
class Main is Game
action Main
StartGame()
end
action CreateGame
FlowLayout layout
SetLayout(layout)
Button button1
button1:SetName("My Button")
Add(button1)
Layout currentLayout = GetLayout()
end
end
Return
Libraries.Interface.Layouts.Layout:
GetPointLight(integer index)
This action will get a PointLight from the currently active Layer3D, which is stored at the given index inside the layer. If there are no PointLights within the layer, or if the index is out of bounds, then an error will be thrown.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
PointLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
myLight = GetPointLight(0)
end
end
Parameters
- integer index: The index to retrieve the PointLight from.
Return
Libraries.Game.Graphics.PointLight:
GetPointLights()
This action will return an iterator containing all of the PointLight objects stored within the currently active Layer3D.
Return
Libraries.Containers.Iterator: An Iterator containing all PointLights on the currently active Layer3D.
GetSceneManager()
This action returns the manager used to save and load scenes in the Game.
Return
Libraries.Game.Scenes.SceneManager:
GetScreenHeight()
The GetScreenHeight action will return the height of the screen as an integer.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
output GetScreenHeight()
end
end
Return
integer: The height of the screen.
GetScreenResolution()
This action will return the current ScreenResolution being used by the game engine. This is only effective on desktop platforms - on non-desktop platforms, this will return undefined instead.
Example Code
use Libraries.Game.Game
use Libraries.Game.ScreenResolution
class Main is Game
action Main
StartGame()
end
action CreateGame
ScreenResolution resolution = GetScreenResolution()
output "The default resolution's dimensions are " + resolution:GetWidth() + " x " + resolution:GetHeight()
end
end
Return
Libraries.Game.ScreenResolution:
GetScreenWidth()
The GetScreenWidth action will return the width of the screen as an integer.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
output GetScreenWidth()
end
end
Return
integer: The width of the screen.
GetSecondsBetweenFrames()
GetSecondsBetweenFrames will return the number of seconds that has passed between the current frame and the previous one. Frames are the still images drawn on the screen in rapid succession to make the images appear to move. Note that the value from this field is approximately the same value as the parameter in the Update action.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action Update(number time)
output "Seconds since last frame: " + GetSecondsBetweenFrames()
end
end
Return
number: How many seconds have passed since the previous frame.
GetSimulationThreshold2D()
The SetSkybox action will set the currently active Layer3D to use the given Skybox.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Skybox
class Main is Game
action Main
StartGame()
end
action CreateGame
Skybox skybox
// Assuming we have a folder named "skybox" containing our six images.
skybox:Load("skybox/right.jpg", "skybox/left.jpg", "skybox/top.jpg", "skybox/bottom.jpg", "skybox/front.jpg", "skybox/back.jpg")
SetSkybox(skybox)
end
end
Return
number:
GetSkybox()
The GetSkybox action will return the Skybox in use by the currently active Layer3D. By default, a Layer3D does not start with a Skybox, so using this on a Layer3D that hasn't had a Skybox assigned to it will return undefined.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Skybox
class Main is Game
action Main
StartGame()
end
action CreateGame
Skybox skybox
// Assuming we have a folder named "skybox" containing our six images.
skybox:Load("skybox/right.jpg", "skybox/left.jpg", "skybox/top.jpg", "skybox/bottom.jpg", "skybox/front.jpg", "skybox/back.jpg")
SetSkybox(skybox)
// We can get the Skybox back from the layer using GetSkybox().
Skybox currentSkybox = GetSkybox()
end
end
Return
Libraries.Game.Graphics.Skybox: The Skybox in use by the current Layer3D.
GetWebConfiguration()
This action will return the game's configuration for web platforms.
Example Code
use Libraries.Game.Game
use Libraries.Game.WebConfiguration
class Main is Game
action Main
WebConfiguration configuration = GetWebConfiguration()
configuration:capFramesPerSecond = true
StartGame()
end
end
Return
Libraries.Game.WebConfiguration: The current WebConfiguration.
InitializeLayers()
This action sets the game to use the default layers. The default layers consist of a single 3D layer, with a single 2D layer on top of it. This action is automatically called by the Game engine during StartGame. Users may use it again to "reset" the layers to default, but generally users will not need to use this action directly.
IsColliding()
This allows us to know if collisions are on or off for the layer.
Return
boolean:
IsWindowFocused()
This action determines whether or not the main application window has the focus on desktop platforms. On non-desktop platforms, this always returns false.
Return
boolean:
IsWindowMaximized()
On desktop platforms, this action returns true if the application is in a maximized window, or false otherwise. On other platforms, this always returns false.
Return
boolean: True if the window is maximized, false otherwise.
IsWindowMinimized()
On desktop platforms, this action returns true if the application is currently minimized, or false otherwise. On other platforms, this always returns false.
Return
boolean: True if the window is maximized, false otherwise.
LoadScene(Libraries.Game.Scenes.Scene scene)
This loads a scene file into the game.
Example Code
use Libraries.Game.Game
use Libraries.Game.Scenes.Scene
use Libraries.System.File
class Main is Game
action Main
StartGame()
end
action CreateGame
Scene scene
File file
file:SetPath("Scenes/Scene.qs")
scene:Load(file)
LoadScene(scene)
end
action Update(number seconds)
end
end
Parameters
LoadScene(text path)
This loads a scene file into the game. This is a helper action for loading a scene.
Example Code
use Libraries.Game.Game
use Libraries.Game.Scenes.Scene
use Libraries.System.File
class Main is Game
action Main
StartGame()
end
action CreateGame
LoadScene("Scenes/Scene.qs")
end
action Update(number seconds)
end
end
Parameters
LoadScene(Libraries.System.File file)
This loads a scene file into the game.
Example Code
use Libraries.Game.Game
use Libraries.Game.Scenes.Scene
use Libraries.System.File
class Main is Game
action Main
StartGame()
end
action CreateGame
File file
file:SetPath("Scenes/Scene.qs")
LoadScene(file)
end
action Update(number seconds)
end
end
Parameters
- Libraries.System.File: the file to be loaded
OnExit()
The OnExit action is called when the Game is about to close, either because the Exit action was called or because the user requested it (for example, by attempting to close the window on desktop platforms). The action must return a boolean value representing whether or not the application should proceed to shut down. If the returned value is true, the application will shut down. If it is false, the program will continue running instead. Users should always make sure that it is possible for OnExit to return true in some cases to allow the user to close the program. This action doesn't prevent the Game from shutting down on all platforms. For example, mobile devices typically don't allow an application to keep itself open after a close has been requested.
Example Code
use Libraries.Game.Game
class Main is Game
integer countdown = 3
action Main
StartGame()
end
action OnExit returns boolean
if countdown <= 0
return true
end
output "Countdown: " + countdown
countdown = countdown - 1
return false
end
end
Return
boolean: True if the Game should be allowed to close, false if the Game should continue running.
Remove(Libraries.Game.Graphics.PointLight light)
This action will remove a PointLight from the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
Remove(light)
end
end
Parameters
- Libraries.Game.Graphics.PointLight: The light to remove from the currently active Layer3D.
Remove(Libraries.Game.Graphics.DirectionalLight light)
This action will remove a DirectionalLight from the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
Remove(light)
end
end
Parameters
- Libraries.Game.Graphics.DirectionalLight: The light to remove from the currently active Layer3D.
Remove(Libraries.Interface.Item3D item)
The Remove action will remove an item that was put into the game using the Add action. More specifically, the item will be removed from the current default Layer3D. The game will no longer handle removed items - for example, removing a Model will make the game engine stop drawing it.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
class Main is Game
Model car
action Main
StartGame()
end
action CreateGame
car:Load("sedan.g3db")
Add(car)
// If we don't have this remove command, the bunny will draw.
Remove(car)
end
end
Parameters
- Libraries.Interface.Item3D: The item to be removed from the default Layer3D.
Remove(Libraries.Interface.Item2D item)
The Remove action will remove an item that was put into the game using the Add action. More specifically, the item will be removed from the current default Layer2D. The game will no longer handle removed items - for example, removing a Drawable will make the game engine stop drawing it.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
class Main is Game
Drawable bunny
action Main
StartGame()
end
action CreateGame
bunny:Load("Images/Rabbit.png")
Add(bunny)
// If we don't have this remove command, the bunny will draw.
Remove(bunny)
end
end
Parameters
- Libraries.Interface.Item2D: The item to be removed from the default Layer2D.
RemoveAmbientLight()
This action will remove the ambient lighting from the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
RemoveAmbientLight()
end
end
RemoveCollisionListener(Libraries.Interface.Events.CollisionListener2D listener)
Removes a 2D collision listener from the game. This collision listener will no longer receive collision events from the game engine.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Item2D
use Libraries.Interface.Events.CollisionListener2D
use Libraries.Interface.Events.CollisionEvent2D
class Main is Game, CollisionListener2D
Item2D item1
Item2D item2
action Main
StartGame()
end
action CreateGame
AddCollisionListener(me)
item1:SetCollidable(true)
item2:SetCollidable(true)
RemoveCollisionListener(me)
end
action BeginCollision(CollisionEvent2D event)
end
action FinishCollision(CollisionEvent2D event)
end
end
Parameters
RemoveCollisionListener(Libraries.Interface.Events.CollisionListener3D listener)
Removes a 3D collision listener from the game. This collision listener will no longer receive collision events from the game engine.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Item3D
use Libraries.Interface.Events.CollisionListener3D
use Libraries.Interface.Events.CollisionEvent3D
class Main is Game, CollisionListener3D
Item3D item1
Item3D item2
action Main
StartGame()
end
action CreateGame
AddCollisionListener(me)
item1:SetCollidable(true)
item2:SetCollidable(true)
RemoveCollisionListener(me)
end
action BeginCollision(CollisionEvent3D event)
end
action FinishCollision(CollisionEvent3D event)
end
end
Parameters
RemoveControlActivationListener(Libraries.Interface.Events.ControlActivationListener listener)
Parameters
RemoveFocusListener(Libraries.Interface.Events.FocusListener listener)
This action removes a FocusListener from the Game. The given FocusListener will no longer be informed of FocusEvents when the focus changes.
Parameters
- Libraries.Interface.Events.FocusListener: The FocusListener to remove from the Game.
RemoveInputTable(text key)
This action removes the InputTable with the matching identifier from the Game (if there is one). If the InputTable is found, it will be returned - otherwise, the action returns undefined.
Parameters
Return
RemoveKeyboardListener(Libraries.Interface.Events.KeyboardListener listener)
This action removes a KeyboardListener from the Game. The listener will no longer receive events for key presses and releases.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.KeyboardListener
class Main is Game
KeyboardListener listener
action Main
StartGame()
end
action CreateGame
AddKeyboardListener(listener)
RemoveKeyboardListener(listener)
end
end
Parameters
- Libraries.Interface.Events.KeyboardListener: The KeyboardListener to be removed from the Game.
RemoveLayer(integer index)
This action will remove the Layer stored in the Game at the given index within the internal layer array, where the first element (at index 0) of the array is the bottom layer, and further elements of the array are placed on top of previous elements.
Parameters
- integer index: The index of the Layer to be removed. use Libraries.Game.Game use Libraries.Game.Layer2D class Main is Game action Main StartGame() end action CreateGame // This will remove the bottom Layer of the Game. RemoveLayer(0) end action Update(number seconds) end end
RemoveLayer(Libraries.Game.Layer layer)
This action will remove the given Layer from the Game.
Parameters
- Libraries.Game.Layer: The Layer to be removed from the Game. use Libraries.Game.Game use Libraries.Game.Layer2D class Main is Game action Main StartGame() end action CreateGame Layer2D layer AddLayer(layer) RemoveLayer(layer) end action Update(number seconds) end end
RemoveMenuChangeListener(Libraries.Interface.Events.MenuChangeListener listener)
Parameters
RemoveMouseListener(Libraries.Interface.Events.MouseListener listener)
This action removes a MouseListener from the Game. The mouse listener will no longer receive mouse events from the Game. If the given MouseListener was not part of the Game, then this will have no effect.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseListener
class Main is Game
MouseListener listener
action Main
StartGame()
end
action CreateGame
AddMouseListener(listener)
RemoveMouseListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseListener: The MouseListener to be removed from the Game.
RemoveMouseMovementListener(Libraries.Interface.Events.MouseMovementListener listener)
This action removes a MouseMovementListener from the Game. The listener will no longer receive events from the Game. If the given MouseMovementListener was not part of the Game, then this will have no effect.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseMovementListener
class Main is Game
MouseMovementListener listener
action Main
StartGame()
end
action CreateGame
AddMouseMovementListener(listener)
RemoveMouseMovementListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseMovementListener: The MouseMovementListener to be removed from the Game.
RemoveMouseWheelListener(Libraries.Interface.Events.MouseWheelListener listener)
This action removes a MouseWheelListener from the Game. The listener will no longer receive events from the Game. If the given MouseWheelListener is not part of the Game, then this will have no effect.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.MouseWheelListener
class Main is Game
MouseWheelListener listener
action Main
StartGame()
end
action CreateGame
AddMouseWheelListener(listener)
RemoveMouseWheelListener(listener)
end
end
Parameters
- Libraries.Interface.Events.MouseWheelListener: The MouseWheelListener to be removed from the Game.
RemoveResizeListener(Libraries.Interface.Events.ResizeListener listener)
This action removes a ResizeListener from the Game. The listener will no longer receive resize events.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.ResizeListener
class Main is Game
ResizeListener listener
action Main
StartGame()
end
action CreateGame
AddResizeListener(listener)
RemoveResizeListener(listener)
end
end
Parameters
- Libraries.Interface.Events.ResizeListener: The ResizeListener to be removed from the Game.
RemoveSelectionListener(Libraries.Interface.Events.SelectionListener listener)
This action removes a SelectionListener from the Game. The SelectionListener will no longer be informed when Selections change.
Parameters
- Libraries.Interface.Events.SelectionListener: The SelectionListener to remove from the Game.
RemoveTabChangeListener(Libraries.Interface.Events.TabChangeListener listener)
Parameters
RemoveTextChangeListener(Libraries.Interface.Events.TextChangeListener listener)
This action removes a TextChangeListener from the Game. It will no longer receive TextChangeEvents.
Parameters
- Libraries.Interface.Events.TextChangeListener: The TextChangeListener to remove from the Game.
RemoveTextInputListener(Libraries.Interface.Events.TextInputListener listener)
This action removes a TextInputListener from the Game. The listener will no longer receive events for text input from the keyboard.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.TextInputListener
class Main is Game
TextInputListener listener
action Main
StartGame()
end
action CreateGame
AddTextInputListener(listener)
RemoveTextInputListener(listener)
end
end
Parameters
- Libraries.Interface.Events.TextInputListener: The TextInputListener to be removed from the Game.
RemoveTouchListener(Libraries.Interface.Events.TouchListener listener)
This action removes a TouchListener from the Game. The listener will no longer receive TouchEvents from the Game. If the given TouchListener is not a part of the Game, this action will have no effect.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Events.TouchListener
class Main is Game
TouchListener listener
action Main
StartGame()
end
action CreateGame
AddTouchListener(listener)
RemoveTouchListener(listener)
end
end
Parameters
- Libraries.Interface.Events.TouchListener: The TouchListener to be removed from the Game.
RemoveTreeChangeListener(Libraries.Interface.Events.TreeChangeListener listener)
Parameters
RemoveWindowFocusListener(Libraries.Interface.Events.WindowFocusListener listener)
Parameters
SaveScene(Libraries.System.File file)
This action saves everything currently in the game to a Scene file, which it returns, and additionally saves this scene to disk.
Parameters
- Libraries.System.File: the file to save the scene to
Return
Libraries.Game.Scenes.Scene: a scene file
SaveScene()
This action saves all of the items currently in the game to a Scene object, which can then be saved.
Example Code
use Libraries.Game.Game
use Libraries.Game.Scenes.Scene
use Libraries.System.File
class Main is Game
action Main
StartGame()
end
action CreateGame
LoadScene("Scenes/Scene.qs")
//returns undefined if the item is not found
Item2D player = FindItem2DByName("1: Girl")
end
action Update(number seconds)
end
end
Return
Libraries.Game.Scenes.Scene: the Scene object.
SetAccessibility(Libraries.Interface.Accessibility accessibilityManager)
Parameters
SetAmbientLight(Libraries.Game.Graphics.AmbientLight light)
This action will set the ambient light on the currently active Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
end
end
Parameters
- Libraries.Game.Graphics.AmbientLight: The AmbientLight to use in the currently active Layer3D.
SetApplicationIcon(Libraries.System.File file)
This action sets the program's icon, which appears on the taskbar and on the window frame. This only works on Windows platforms -- otherwise, this action does nothing.
Example Code
use Libraries.Game.Game
use Libraries.System.File
class Main is Game
action Main
StartGame()
end
action CreateGame
File file
file:SetPath("Icon.png")
SetApplicationIcon(file)
end
end
Parameters
- Libraries.System.File: The image file to use for the icon.
SetCamera2D(Libraries.Game.Graphics.Camera cam)
This action will set the camera that is being used by the current Layer2D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.OrthographicCamera
class Main is Game
action Main
StartGame()
end
action CreateGame
OrthographicCamera camera
SetCamera2D(camera)
end
end
Parameters
- Libraries.Game.Graphics.Camera: The Camera to use for the currently active Layer2D.
SetCamera3D(Libraries.Game.Graphics.Camera cam)
This action will set the camera that is being used by the current Layer3D.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.PerspectiveCamera
class Main is Game
action Main
StartGame()
end
action CreateGame
PerspectiveCamera camera
SetCamera3D(camera)
end
end
Parameters
- Libraries.Game.Graphics.Camera: The Camera to use for the currently active Layer3D.
SetClipboard(text value)
Not all implementations support a clipboard, but all displays support the operations so that they can be called everywhere. If an implementation supports a clipboard, the appopriate system mechanisms are handled automatically. The example here sets a message to the clipboard, which can then be used across other applications.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
output SetClipboard("My Message")
end
action Update(number seconds)
end
end
Parameters
- text value: this action set text to the system clipboard.
SetColliding(boolean collide)
This allows us to turn collisions on or off for the layer.
Parameters
SetColorFilter(Libraries.Game.Graphics.Color color)
Using SetColorFilter will tint all drawn objects on the currently active Layer2D that do not have their own custom color tint. For example, using a red color filter will make all objects drawn on the currently active Layer2D to appear to be more red.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
use Libraries.Game.Graphics.Color
class Main is Game
Drawable bunny
Color tint
action Main
StartGame()
end
action CreateGame
bunny:Load("Rabbit.png")
Add(bunny)
tint = tint:Maroon()
SetColorFilter(tint)
end
end
Parameters
- Libraries.Game.Graphics.Color: The color filter to apply to the currently active Layer2D.
SetColorFilter(number red, number green, number blue, number alpha)
SetColorFilter can also be called using four number parameters instead of a color object. The four parameters are the red, green, blue, and opacity of the filter, respectively. All four of the parameters should be between 0 and 1, representing between 0% and 100% of that color component. For example, a value of 0 for red means that the tinting color will have no red, while a value of 1 will have all red components. An opacity of 0 is totally transparent, while an opacity of 1 will be totally visible.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Drawable
class Main is Game
Drawable bunny
action Main
StartGame()
end
action CreateGame
bunny:Load("Rabbit.png")
Add(bunny)
// Our color will have 75% red, 0% green, 75% blue, and be
// totally opaque. This will tint our bunny image purple.
SetColorFilter(0.75, 0, 0.75, 1)
end
end
Parameters
- number red: The red component of the color filter to apply.
- number green: The green component of the color filter to apply.
- number blue: The blue component of the color filter to apply.
- number alpha: The alpha (or transparency) component of the color filter to apply.
SetConfiguration(Libraries.Game.DesktopConfiguration config)
This action will set the game configuration when run on desktop platforms. The configuration contains data that affect many technical details of the game, such as how large the screen will be. This should be set before calling StartGame().
Example Code
use Libraries.Game.Game
use Libraries.Game.DesktopConfiguration
class Main is Game
action Main
DesktopConfiguration configuration
configuration:width = 1000
configuration:height = 800
configuration:resizable = true
SetConfiguration(configuration)
StartGame()
end
end
Parameters
- Libraries.Game.DesktopConfiguration: The DesktopConfiguration to use.
SetConfiguration(Libraries.Game.WebConfiguration config)
This action will set the game configuration when run on web browsers. The configuration contains data that affect many technical details of the game, such as whether or not to limit the FPS. This should be set before calling StartGame().
Example Code
use Libraries.Game.Game
use Libraries.Game.WebConfiguration
class Main is Game
action Main
WebConfiguration configuration
configuration:canvasID = "game-canvas"
configuration:capFramesPerSecond = true
configuration:framesPerSecondLimit = 45
SetConfiguration(configuration)
StartGame()
end
end
Parameters
- Libraries.Game.WebConfiguration: The WebConfiguration to use.
SetConfiguration(Libraries.Game.AndroidConfiguration config)
This action will set the game configuration when run on an Android device. The configuration contains data that affect many technical details of the game, such as whether the device should use portrait or landscape orientation while running the game. This should be set before calling StartGame().
Example Code
use Libraries.Game.Game
use Libraries.Game.AndroidConfiguration
class Main is Game
action Main
AndroidConfiguration configuration
configuration:defaultOrientation = configuration:PORTRAIT
SetConfiguration(configuration)
StartGame()
end
end
Parameters
- Libraries.Game.AndroidConfiguration: The AndroidConfiguration to use.
SetCurrentLayer2D(Libraries.Game.Layer2D layer)
This action will set the currently active Layer2D. The current Layer2D will receive the effect of actions such as Add(Item2D) or Remove(Item2D), which do not specify which Layer to act upon. Other actions that specify an index or a Layer to act upon will ignore this setting.
Example Code
use Libraries.Game.Game
use Libraries.Game.Layer2D
use Libraries.Game.Graphics.Drawable
use Libraries.Game.Graphics.Color
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Drawable box1
box1:LoadFilledRectangle(200, 200, color:Maroon())
box1:SetPosition(250, 150)
Drawable box2
box2:LoadFilledRectangle(200, 200, color:Teal())
box2:SetPosition(350, 250)
Layer2D layer
AddLayer(0, layer)
Add(box1)
SetCurrentLayer2D(layer)
Add(box2)
end
end
Parameters
- Libraries.Game.Layer2D: The Layer2D to set as currently active.
SetCurrentLayer3D(Libraries.Game.Layer3D layer)
This action will set the currently active Layer3D. The current Layer3D will receive the effect of actions such as Add(Item3D) or Remove(Item3D), which do not specify which Layer to act upon. Other actions that specify an index or a Layer to act upon will ignore this setting.
Example Code
use Libraries.Game.Game
use Libraries.Game.Layer3D
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
class Main is Game
action Main
StartGame()
end
action CreateGame
Color color
Model box1
box1:LoadBox(2, 2, 2, color:Teal())
box1:SetPosition(0, 0, 5)
Model box2
box2:LoadBox(5, 5, 5, color:Maroon())
box2:SetPosition(0, 0, 2)
Layer3D layer
AddLayer(0, layer)
Add(box1)
SetCurrentLayer3D(layer)
Add(box2)
end
end
Parameters
- Libraries.Game.Layer3D: The Layer3D to set as currently active.
SetDefaultInputTable(Libraries.Game.InputTable table)
Parameters
SetEditManager(Libraries.Interface.Undo.EditManager edits)
This action sets the default EditManager from the system to a custom one.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Undo.EditManager
class Main is Game
action Main
StartGame()
end
action CreateGame
EditManager edits
SetEditManager(edits)
end
action Update(number seconds)
end
end
Parameters
SetFirstLetterNavigationTime(number firstLetterNavigationTime)
This action finds the first Item2D that has been added to the Game with the given name and returns it. If no Item2D with the given name can be found, this action returns undefined instead.
Parameters
SetFocus(Libraries.Interface.Item item)
This action sets the focus on the given item. This will immediately notify all focus listeners on the previous focus that the Item has lost focus, and all focus listeners on the new focus that the Item has gained focus.
Parameters
- Libraries.Interface.Item: The Item to gain focus.
SetFocusManager(Libraries.Game.FocusManager focus)
This action sets the FocusManager to be used for the Game. The FocusManager is responsible for moving focus between Items, which is essential for GUIs to function correctly.
Parameters
SetFontManager(Libraries.Game.Graphics.Fonts.FontManager fontManager)
This action sets the FontManager to be used for the Game. The FontManager is responsible for loading and storing font information.
Parameters
SetFullScreen(boolean fullScreen)
This action sets whether the game should launch in full screen or windowed mode on desktop platforms (e.g. Windows or Mac) when the game is started. By default, games are windowed. This action should be called before calling StartGame().
Example Code
use Libraries.Game.Game
class Main is Game
number timer = 0
action Main
SetFullScreen(true)
StartGame()
end
action CreateGame
end
action Update(number seconds)
timer = timer + seconds
if timer > 3
output "Exiting game..."
Exit()
end
end
end
Parameters
- boolean fullScreen: Whether or not the Game should launch in full screen mode on desktops.
SetGameName(text name)
This action sets the name of the game displayed at the top of the window. The default name is "Game". This action should be called before calling StartGame(). This will have no effect on non-Desktop platforms.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
SetGameName("Mariachi Band Simulator 3000")
StartGame()
end
end
Parameters
- text name: The name to display on the Game window.
SetGravity2D(Libraries.Compute.Vector2 gravity)
This action will return an iterator containing all of the PointLight objects stored within the currently active Layer3D.
Parameters
SetGravity2D(number gravityX, number gravityY)
This action will return an iterator containing all of the DirectionalLight objects stored within the currently active Layer3D.
Parameters
SetGravity3D(Libraries.Compute.Vector3 gravity)
This action will get a PointLight from the currently active Layer3D, which is stored at the given index inside the layer. If there are no PointLights within the layer, or if the index is out of bounds, then an error will be thrown.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.PointLight
class Main is Game
PointLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
PointLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetPosition(4, 3, -2)
light:SetIntensity(30)
Add(light)
myLight = GetPointLight(0)
end
end
Parameters
SetGravity3D(number gravityX, number gravityY, number gravityZ)
This action will get a DirectionalLight from the currently active Layer3D, which is stored at the given index inside the layer. If there are no DirectionalLights within the layer, or if the index is out of bounds, then an error will be thrown.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Model
use Libraries.Game.Graphics.Color
use Libraries.Game.Graphics.AmbientLight
use Libraries.Game.Graphics.DirectionalLight
class Main is Game
DirectionalLight myLight
action Main
StartGame()
end
action CreateGame
Color color
Model box
box:LoadBox(2, 2, 2, color:Teal())
Add(box)
AmbientLight ambient
ambient:SetColor(0.4, 0.4, 0.4, 1)
SetAmbientLight(ambient)
DirectionalLight light
light:SetColor(0.8, 0.8, 0.8, 1)
light:SetDirection(1, -2, 1)
Add(light)
myLight = GetDirectionalLight(0)
end
end
Parameters
SetInterfaceScale(number scale)
The SetInterfaceScale action sets the scale of the user interface. Larger scaling values make each interface component larger. When the interface is scaled in this way, components that can be re-rendered at a higher resolution (such as fonts) will do so.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Layouts.FlowLayout
use Libraries.Interface.Controls.Button
class Main is Game
action Main
StartGame()
end
action CreateGame
FlowLayout layout
SetLayout(layout)
Button button1
button1:SetName("My Button")
Add(button1)
SetInterfaceScale(2.0)
end
end
Parameters
- number scale: The new interface rendering scale to use.
SetLayer(integer index, Libraries.Game.Layer layer)
This action will set the given index to use the given Layer, overwriting any Layer that was already at that index. This will not force disposal of any resources that the Layer's items may have been using.
Parameters
- integer index: The index to set the Layer at.
- Libraries.Game.Layer: The Layer to be added to the Game. use Libraries.Game.Game use Libraries.Game.Layer2D class Main is Game action Main StartGame() end action CreateGame // This will set the layer at index 0, making it the first layer drawn. Layer2D layer SetLayer(0, layer) end action Update(number seconds) end end
SetLayout(Libraries.Interface.Layouts.Layout layout)
The SetLayout action is used to apply a layout to all Controls on the default Layer2D.
Example Code
use Libraries.Game.Game
use Libraries.Interface.Layouts.FlowLayout
use Libraries.Interface.Controls.Button
class Main is Game
action Main
StartGame()
end
action CreateGame
FlowLayout layout
SetLayout(layout)
Button button1
button1:SetName("My Button")
Add(button1)
end
end
Parameters
- Libraries.Interface.Layouts.Layout: The Layout to use on the default Layer2D.
SetSceneManager(Libraries.Game.Scenes.SceneManager scene)
This action sets the manager used to save and load scenes in the Game.
Parameters
SetScreenResolution(Libraries.Game.ScreenResolution resolution, boolean adjustCameras)
This action will set a game running on a desktop platform to use the given ScreenResolution. This will have no effect on non-desktop platforms. If the second parameter is set to true, then this action will also adjust the size of the cameras on the default 2D and 3D layers to match the new screen size. If the parameter is false, then the cameras will not be changed.
Example Code
use Libraries.Game.Game
use Libraries.Game.ScreenResolution
use Libraries.Game.InputMonitor
use Libraries.Interface.Events.KeyboardEvent
use Libraries.Game.Graphics.Drawable
class Main is Game
InputMonitor monitor
KeyboardEvent keys
action Main
StartGame()
end
action CreateGame
Drawable leftSquare
leftSquare:LoadFilledRectangle(100, 100)
leftSquare:SetPosition(0, 250)
Add(leftSquare)
Drawable rightSquare
rightSquare:LoadFilledRectangle(100, 100)
rightSquare:SetPosition(700, 250)
Add(rightSquare)
end
action Update(number seconds)
// Pressing the spacebar will set the game to use the desktop's resolution.
// If the boolean is false, the cameras will not be adjusted to the new screen size,
// making them appear to be zoomed in on the original area.
// If the boolean is true (or omitted), the cameras will be adjusted to view the
// new size of the screen. Drawables will remain at their original size and position.
if monitor:IsKeyPressed(keys:SPACE)
ScreenResolution resolution = GetDesktopResolution()
SetScreenResolution(resolution, false)
end
// Using the desktop resolution will typically make the game go fullscreen.
// To exit the game, the user can press the ESCAPE key.
if monitor:IsKeyPressed(keys:ESCAPE)
Exit()
end
end
end
Parameters
- Libraries.Game.ScreenResolution: The ScreenResolution to use for the game's display.
- boolean adjustCameras: True to adjust the default cameras to the new dimensions, false to keep the cameras the same.
SetScreenResolution(Libraries.Game.ScreenResolution resolution)
This action will set a game running on a desktop platform to use the given ScreenResolution. This will have no effect on non-desktop platforms. Using this action will also adjust the size of the cameras on the default 2D and 3D layers to match the new screen size. To change the screen size without changing the cameras, use SetScreenResolution(ScreenResolution, false).
Example Code
use Libraries.Game.Game
use Libraries.Game.ScreenResolution
use Libraries.Game.InputMonitor
use Libraries.Interface.Events.KeyboardEvent
class Main is Game
InputMonitor monitor
KeyboardEvent keys
action Main
StartGame()
end
action CreateGame
ScreenResolution resolution = GetDesktopResolution()
SetScreenResolution(resolution)
end
action Update(number seconds)
// Using the desktop resolution will typically make the game go fullscreen.
// To exit the game, the user can press the ESCAPE key.
if monitor:IsKeyPressed(keys:ESCAPE)
Exit()
end
end
end
Parameters
- Libraries.Game.ScreenResolution: The ScreenResolution to use for the game's display.
SetScreenSize(integer width, integer height, boolean adjustCameras)
This action sets windowed size of the game (the default size is 800 by 600). This action can be called before calling StartGame() to set the initial window size. If this action is used when the game is in fullscreen, it will return it to windowed mode. If the game is already running and the boolean parameter is set to true, then the default cameras will be adjusted to fit the new window size. If the value is set to false, the cameras will not be adjusted.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
SetScreenSize(1024, 800)
StartGame()
end
end
Parameters
- integer width: The screen width.
- integer height: The screen height.
- boolean adjustCameras: True to adjust the default cameras to the new dimensions, false to keep the cameras the same.
SetScreenSize(integer width, integer height)
This action sets windowed size of the game (the default size is 800 by 600). This action can be called before calling StartGame() to set the initial window size. If this action is used when the game is in fullscreen, it will return it to windowed mode. If the game is already started, this action will adjust the cameras on the default 2D and 3D layers to correspond to the new window size.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
SetScreenSize(1024, 800)
StartGame()
end
end
Parameters
- integer width: The screen width.
- integer height: The screen height.
SetSimulationThreshold2D(number threshold)
The GetSkybox action will return the Skybox in use by the currently active Layer3D. By default, a Layer3D does not start with a Skybox, so using this on a Layer3D that hasn't had a Skybox assigned to it will return undefined.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Skybox
class Main is Game
action Main
StartGame()
end
action CreateGame
Skybox skybox
// Assuming we have a folder named "skybox" containing our six images.
skybox:Load("skybox/right.jpg", "skybox/left.jpg", "skybox/top.jpg", "skybox/bottom.jpg", "skybox/front.jpg", "skybox/back.jpg")
SetSkybox(skybox)
// We can get the Skybox back from the layer using GetSkybox().
Skybox currentSkybox = GetSkybox()
end
end
Parameters
SetSkybox(Libraries.Game.Graphics.Skybox skybox)
The SetSkybox action will set the currently active Layer3D to use the given Skybox.
Example Code
use Libraries.Game.Game
use Libraries.Game.Graphics.Skybox
class Main is Game
action Main
StartGame()
end
action CreateGame
Skybox skybox
// Assuming we have a folder named "skybox" containing our six images.
skybox:Load("skybox/right.jpg", "skybox/left.jpg", "skybox/top.jpg", "skybox/bottom.jpg", "skybox/front.jpg", "skybox/back.jpg")
SetSkybox(skybox)
end
end
Parameters
- Libraries.Game.Graphics.Skybox: The Skybox to use on the current Layer3D.
SetVSync(boolean vSync)
This action enables or disables vSync in the game. Passing a value of true enables it, a value of false disables it. vSync is enabled by default. This action should be called before calling StartGame(). This option is only used when the game is run on desktops.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
SetVSync(false)
StartGame()
end
end
Parameters
- boolean vSync: Whether or not vSync should be enabled.
SetWebCanvasName(text name)
The SetWebCanvasName action determines which canvas to use on a webpage. When the game runs, it will be displayed on the designated canvas. If no canvas name is given, the engine will attempt to find a canvas with the default name, "QuorumGraphicsCanvas". If the engine can't find a canvas with the set name, it will not run. This action has no effect if called inside a game that isn't being run online.
Example Code
use Libraries.Game.Game
use Libraries.Game.WebConfiguration
class Main is Game
action Main
SetWebCanvasName("myCanvas")
StartGame()
end
end
Parameters
- text name: The name of the canvas to display graphics on.
SetWindowMaximized(boolean maximized)
This action maximizes the screen, or restores a maximized screen to its original size. If this is called before the Game window opens, it will launch the window in maximized mode. If the Game is being displayed in full screen, this action will do nothing. This action is only for desktop platforms -- on other platforms, it does nothing.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
SetWindowMaximized(true)
StartGame()
end
end
Parameters
- boolean maximized: True to maximize the window, or false to restore it to its original size.
SetWindowMinimized(boolean minimized)
This action minimizes the screen, or restores a minimized screen to its original size. This action is only for desktop platforms -- on other platforms, it does nothing.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
action CreateGame
SetWindowMinimized(true)
end
end
Parameters
- boolean minimized: True to minimize the window, or false to restore it to its original size.
StartGame()
The StartGame action will start your game. Specifically, it does this: 1. Creates the Game window. 2. Calls the CreateGame() action. 3. Repeatedly calls Update() until Exit() is called or the window is closed. If you are using any actions to change the starting settings of the window, call those before calling StartGame().
Example Code
use Libraries.Game.Game
class Main
action Main
Game game
Game:StartGame()
end
end
Update(number time)
The Update action is where most of the game's logic goes. The code inside Update will be called on every frame of the game. In other words, for every time a picture is drawn on the screen, the Update action is called. The number parameter is the amount of seconds that has passed since the last time Update was called.
Example Code
use Libraries.Game.Game
class Main is Game
action Main
StartGame()
end
// It is very important when making our own Update action that it has
// the time parameter! If we don't have it, it won't be called.
action Update(number time)
output "Update was called!"
end
end
Parameters
- number time: The number of seconds that have passed since the last time Update was called.
UseDesktopResolution(boolean adjustCameras)
UseDesktopResolution will set the game to use the same display settings as the desktop's current screen resolution (independent of the game). This is only effective when used on desktop platforms - on other platforms, this will do nothing. If the boolean parameter is set to true, then this action will also adjust the size of the cameras on the default 2D and 3D layers to match the new screen size. If the parameter is false, then the cameras will not be changed.
Example Code
use Libraries.Game.Game
use Libraries.Game.InputMonitor
use Libraries.Interface.Events.KeyboardEvent
use Libraries.Game.Graphics.Drawable
class Main is Game
InputMonitor monitor
KeyboardEvent keys
action Main
StartGame()
end
action CreateGame
Drawable leftSquare
leftSquare:LoadFilledRectangle(100, 100)
leftSquare:SetPosition(0, 250)
Add(leftSquare)
Drawable rightSquare
rightSquare:LoadFilledRectangle(100, 100)
rightSquare:SetPosition(700, 250)
Add(rightSquare)
end
action Update(number seconds)
// Pressing the spacebar will set the game to use the desktop's resolution.
// If the boolean is false, the cameras will not be adjusted to the new screen size,
// making them appear to be zoomed in on the original area.
// If the boolean is true (or omitted), the cameras will be adjusted to view the
// new size of the screen. Drawables will remain at their original size and position.
if monitor:IsKeyPressed(keys:SPACE)
UseDesktopResolution(false)
end
// Using the desktop resolution will typically make the game go fullscreen.
// To exit the game, the user can press the ESCAPE key.
if monitor:IsKeyPressed(keys:ESCAPE)
Exit()
end
end
end
Parameters
- boolean adjustCameras: True to adjust the default cameras to the new dimensions, false to keep the cameras the same.
UseDesktopResolution()
UseDesktopResolution will set the game to use the same display settings as the desktop's current screen resolution (independent of the game). This is only effective when used on desktop platforms - on other platforms, this will do nothing. Using this action will also adjust the size of the cameras on the default 2D and 3D layers to match the new screen size. To change the screen size without changing the cameras, use SetScreenResolution(ScreenResolution, false).
Example Code
use Libraries.Game.Game
use Libraries.Game.InputMonitor
use Libraries.Interface.Events.KeyboardEvent
class Main is Game
InputMonitor monitor
KeyboardEvent keys
action Main
StartGame()
end
action CreateGame
UseDesktopResolution()
end
action Update(number seconds)
// Using the desktop resolution will typically make the game go fullscreen.
// To exit the game, the user can press the ESCAPE key.
if monitor:IsKeyPressed(keys:ESCAPE)
Exit()
end
end
end