311 lines
10 KiB
Markdown
311 lines
10 KiB
Markdown
# LoveDOS API
|
|
|
|
##### [Modules](#modules-1)
|
|
* [love](#love)
|
|
* [love.system](#lovesystem)
|
|
* [love.graphics](#lovegraphics)
|
|
* [love.timer](#lovetimer)
|
|
* [love.keyboard](#lovekeyboard)
|
|
* [love.mouse](#lovemouse)
|
|
* [love.filesystem](#lovefilesystem)
|
|
|
|
##### [Objects](#objects-1)
|
|
* [Image](#image)
|
|
* [Quad](#quad)
|
|
* [Font](#font)
|
|
|
|
##### [Callbacks](#callbacks-1)
|
|
|
|
|
|
## Modules
|
|
|
|
### love
|
|
|
|
##### love.getVersion()
|
|
Returns the version of LoveDOS as a string.
|
|
|
|
### love.system
|
|
Provides access to information about the user's system.
|
|
|
|
##### love.system.getOS()
|
|
Returns the operating system which LoveDOS is running on.
|
|
|
|
##### love.system.getMemUsage()
|
|
Returns the amount of memory in kilobytes which is being used by LoveDOS. This
|
|
includes the memory used by both the loaded assets and lua.
|
|
|
|
|
|
### love.graphics
|
|
Provides functions for drawing lines, shapes, text and images.
|
|
|
|
##### love.graphics.getDimensions()
|
|
Returns the width and height of the screen in pixels as two numbers.
|
|
|
|
##### love.graphics.getWidth()
|
|
Returns the width of the screen in pixels.
|
|
|
|
##### love.graphics.getHeight()
|
|
Returns the height of the screen in pixels.
|
|
|
|
##### love.graphics.getBackgroundColor()
|
|
Returns the currently set background color.
|
|
|
|
##### love.graphics.setBackgroundColor(red, green, blue)
|
|
Sets the the background color used when `love.graphics.clear()` is called
|
|
without any arguments. If called with no arguments the back color is set to
|
|
black.
|
|
|
|
##### love.graphics.getColor()
|
|
Returns the currently set color.
|
|
|
|
##### love.graphics.setColor(red, green, blue)
|
|
Sets the the color used when drawing. If called with no arguments the color is
|
|
set to white.
|
|
|
|
##### love.graphics.getBlendMode()
|
|
Returns the currently set blend mode.
|
|
|
|
##### love.graphics.setBlendMode([mode])
|
|
Sets the current blend mode used by `love.graphics.draw()`. If no `mode`
|
|
argument is passed then the blend mode is set to the default (`"normal"`).
|
|
|
|
Mode | Description
|
|
------------|------------------------------------------------------------------
|
|
`"normal"` | Draws normally with transparency
|
|
`"fast"` | Draws without transparency, this is the fastest blend mode
|
|
`"and"` | Binary ANDs the source and destination pixels
|
|
`"or"` | Binary ORs the source and destination pixels
|
|
`"color"` | Draws opaque pixels using the `love.graphics.setColor()` color
|
|
|
|
##### love.graphics.getFont()
|
|
Returns the current font.
|
|
|
|
##### love.graphics.setFont([font])
|
|
Sets the current font. If `font` is nil then the font is reset to the default.
|
|
|
|
##### love.graphics.getCanvas()
|
|
Returns the current canvas.
|
|
|
|
##### love.graphics.setCanvas([image])
|
|
Sets the current canvas which all the draw operations will draw to. If the
|
|
`image` argument is not set then the canvas is reset to the default canvas
|
|
representing the user's screen.
|
|
|
|
##### love.graphics.reset()
|
|
Resets the font, color, background color, canvas, blend mode and flip mode to
|
|
their defaults.
|
|
|
|
##### love.graphics.clear(red, green, blue)
|
|
Clears the screen (or canvas) to the color. If no color argument is given
|
|
then the background color is used (see `love.graphics.setBackgroundColor()`).
|
|
|
|
##### love.graphics.draw(image [, quad] [, x [, y [, flip]]])
|
|
Draws the `image` to the screen at the given `x`, `y` position. If a `quad`
|
|
argument is provided then the image is clipped to the provided quad when drawn.
|
|
If `flip` is true then the image is flipped horizontally.
|
|
|
|
##### love.graphics.point(x, y)
|
|
Draws a pixel.
|
|
|
|
##### love.graphics.line(x, y, x2, y2 [, ...])
|
|
Draws a line from the positition `x`, `y` to `x2`, `y2`. You can continue
|
|
passing point positions to draw a polyline.
|
|
|
|
##### love.graphics.rectangle(mode, x, y, width, height)
|
|
Draws a rectange and the `x`, `y` position of the given `width` and `height`.
|
|
`mode` should be either `"fill"` or `"line"`.
|
|
|
|
##### love.graphics.circle(mode, x, y, radius)
|
|
Draws a circle of a given `radius` with its center at the `x`, `y` position.
|
|
`mode` should be either `"fill"` or `"line"`.
|
|
|
|
##### love.graphics.print(text, x, y)
|
|
Draws the `text` string in the current font with its top left at the `x`, `y`
|
|
position.
|
|
|
|
##### love.graphics.newImage(filename)
|
|
Creates and returns a new image. `filename` should be the name of an image file.
|
|
LoveDOS is limited to a palette of 255 unique colors in any given game; it is up
|
|
to the user not to exceed this limit.
|
|
|
|
##### love.graphics.newCanvas([width, height])
|
|
Creates and returns a new blank image of the size `width`, `height`. If a
|
|
`width` and `height` are not provided then the image will be the same
|
|
dimensions as the screen.
|
|
|
|
##### love.graphics.newQuad(x, y, width, height)
|
|
Creates and returns a new quad.
|
|
|
|
##### love.graphics.newFont([filename ,] ptsize)
|
|
Creates and returns a new font. `filename` should be the name of a ttf file and
|
|
`ptsize` its size. If no `filename` is provided the built in font is used.
|
|
|
|
##### love.graphics.present()
|
|
Flips the current screen buffer with the displayed screen buffer. This is
|
|
called automatically after the `love.draw()` callback.
|
|
|
|
|
|
### love.timer
|
|
Provides an interface to your system's clock.
|
|
|
|
##### love.timer.getDelta()
|
|
Returns the time between the last two frames.
|
|
|
|
##### love.timer.getAverageDelta()
|
|
Returns the average delta time over the last second.
|
|
|
|
##### love.timer.getFps()
|
|
Returns the current frames per second
|
|
|
|
##### love.timer.getTime()
|
|
Returns the number of seconds since some time in the past. The value returned
|
|
by this function should be used only as a comparison with other values returned
|
|
by this function.
|
|
|
|
##### love.timer.step()
|
|
Measures the time between two frames. This is automatically called each frame.
|
|
|
|
##### love.timer.sleep(seconds)
|
|
Pauses the thread for the specified number of `seconds`. During this time no
|
|
callbacks are called.
|
|
|
|
|
|
### love.keyboard
|
|
##### love.keyboard.isDown(key, ...)
|
|
Returns true if any of the given keys are currently pressed.
|
|
|
|
##### love.keyboard.setKeyRepeat(enable)
|
|
Dictates whether repeat `keypressed` events should occur if a key is held down.
|
|
By default this is `false`.
|
|
|
|
|
|
### love.mouse
|
|
##### love.mouse.getPosition()
|
|
Returns 2 values: the current horizontal and vertical position of the mouse.
|
|
|
|
##### love.mouse.getX()
|
|
Returns the horizontal position of the mouse.
|
|
|
|
##### love.mouse.getY()
|
|
Returns the vertical position of the mouse.
|
|
|
|
##### love.mouse.isDown(button, ...)
|
|
Returns true if any of the given mouse buttons are currently pressed. `button`
|
|
should be the value `1` (left), `2` (right) or `3` (middle).
|
|
|
|
|
|
### love.filesystem
|
|
##### love.filesystem.mount(path)
|
|
Mounts the given path. `path` should be either a directory or tar archive.
|
|
Returns `nil` and an error message on failure.
|
|
|
|
##### love.filesystem.unmount(path)
|
|
Unmounts the given `path`. Returns `nil` and an error message on failure.
|
|
|
|
##### love.filesystem.exists(path)
|
|
Returns `true` if the given path exists.
|
|
|
|
##### love.filesystem.isFile(filename)
|
|
Returns `true` if `filename` is a file.
|
|
|
|
##### love.filesystem.isDirectory(dir)
|
|
Returns `true` if `dir` is a directory.
|
|
|
|
##### love.filesystem.read(filename)
|
|
Reads and returns the contents of the file at `filename`.
|
|
|
|
##### love.filesystem.write(filename, string)
|
|
Writes `string` to the given `filename` in the game's save directory.
|
|
|
|
|
|
## Objects
|
|
### Image
|
|
A loaded image or canvas which can be drawn.
|
|
|
|
##### Image:getDimensions()
|
|
Returns the width and height of the image in pixels as two numbers.
|
|
|
|
##### Image:getWidth()
|
|
Returns the width in pixels of the image.
|
|
|
|
##### Image:getHeight()
|
|
Returns the height in pixels of the image.
|
|
|
|
##### Image:getPixel(x, y)
|
|
Returns the color of the pixel at the position `x`, `y` of the image. If the
|
|
position is out of bounds or the pixel is set to transparent then `nil` is
|
|
returned.
|
|
|
|
##### Image:setPixel(x, y [, red, green, blue])
|
|
Sets the pixel of the image at position `x`, `y` to the given color; if no color
|
|
is provided the pixel is set to transparent. If the position is out of bounds
|
|
then no change is made.
|
|
|
|
|
|
### Quad
|
|
A rectangle used to represent the clipping region of an image when drawing.
|
|
|
|
##### Quad:setViewport(x, y, width, height)
|
|
Sets the position and dimensions of the quad
|
|
|
|
##### Quad:getViewport()
|
|
Returns the position (`x`, `y`) and dimensions (`width`, `height`) of the quad,
|
|
4 numerical values in total.
|
|
|
|
|
|
### Font
|
|
A font used by `love.graphics.print()`. The current font can be set using the
|
|
`love.graphics.setFont()` function.
|
|
|
|
##### Font:getWidth(text)
|
|
Returns the width in pixels that the `text` string would take when printed using
|
|
this font.
|
|
|
|
##### Font:getHeight()
|
|
Returns the height of the font in pixels.
|
|
|
|
|
|
## Callbacks
|
|
##### love.load(args)
|
|
Called when LoveDOS is started. `args` is a table containing the command line
|
|
arguments passed to LoveDOS.
|
|
|
|
##### love.update(dt)
|
|
Called at the beginning of each frame, `dt` is the amount of time in seconds
|
|
which has passed since the last frame. This is where all the game logic should
|
|
take place.
|
|
|
|
##### love.draw()
|
|
Called when the frame is ready to be drawn. All your draw calls should take
|
|
place in this function.
|
|
|
|
##### love.keypressed(key, code, isrepeat)
|
|
Called when the user presses a key. `key` is the key that was pressed, `code` is
|
|
the raw integer scancode value for the pressed key, `isrepeat` is true if
|
|
this key press event is a repeat.
|
|
|
|
##### love.keyreleased(key, code)
|
|
Called when the user releases a key. `key` is the key that was released, `code`
|
|
is the raw integer scancode value for the released key.
|
|
|
|
##### love.textinput(text)
|
|
Called when text has been entered by the user. For example if shift-2 is pressed
|
|
on an American keyboard layout, the text "@" will be generated.
|
|
|
|
##### love.mousemoved(x, y, dx, dy)
|
|
Called when the user moves the mouse. `x` and `y` are the mouse's current
|
|
position, `dx` and `dy` is the amount moved relative to the last mouse position.
|
|
|
|
##### love.mousepressed(x, y, button)
|
|
Called when the user presses a mouse button. `x` and `y` are the mouse's current
|
|
position. `button` is the value `1` (left), `2` (right) or `3` (middle).
|
|
|
|
##### love.mousereleased(x, y, button)
|
|
Called when the user releases a mouse button. `x` and `y` are the mouse's
|
|
current position. `button` is the value `1` (left), `2` (right) or `3` (middle).
|
|
|
|
##### love.errhand(err)
|
|
Called when an unprotected error occurs; `err` is the error message. By default
|
|
this function displays the error message and stacktrace on screen and waits for
|
|
the `escape` key to be pressed before exiting.
|