LuaZM Reference

From WikiPrizm
Revision as of 01:19, 23 August 2012 by KermMartian (talk | contribs)
Jump to navigationJump to search

Base Library

The base Lua library has been expanded with a few Prizm-specific functions to make life easier.

run()

ZMG Library

All functions in the ZMG ("PriZM Graphics) library are invoked with zmg.function(arguments,...). The functions with filled-in details and arguments have been implemented, but most are untested. Functions without details are unimplemented. They are as follows:

zmg.clear()

zmg.clear()

Clears the VRAM buffer. No arguments, no return value.

zmg.copySprite()

zmg.copysprite(x,y,width,height,data)

Copies the sprite to the VRAM buffer, overwriting any existing contents. Does perform clipping.

x: (number) x-coordinate of left edge of sprite
y: (number) y-coordinate of top edge of sprite
width: (number) width of sprite in pixels
height: (number) height of sprite in pixels
data: (string) hex for sprite. 4 hex characters per pixel, 5-6-5 color

zmg.copySpriteMask()

zmg.drawLine()

zmg.drawLine(x1, y1, x2, y2, color)

Draws a line of color color from (x1, y1) to (x2, y2). Both points must be on-screen.

x1: (number) x-coordinate of first point
y1: (number) y-coordinate of first point
x2: (number) x-coordinate of second point
y2: (number) y-coordinate of second point
color: (number) 16-bit color code. See drawcircle() for details.

zmg.drawPoint()

zmg.drawRect()

zmg.drawRectFill()

zmg.drawRectFill(x,y,width,height,color)

Draw a rectangular fill of width width and height height starting from top-left pixel coordinate (x,y). Performs clipping to keep rectangle on-screen, but will throw an error for negative coordinates or dimensions. x: (number) x-coordinate of top-left corner
y: (number) y-coordinate of top-left corner
width: (number) width of fill
height: (number) height of fill
color: (number) 16-bit color code. See drawcircle() for details.

zmg.fastCopy()

zmg.fastCopy()

Copy the VRAM to the LCD. Takes no arguments, has no return value.

zmg.drawCircle()

zmg.drawCircle(x,y,radius,color)

Draws an unfilled circle centered at (x,y) with radius radius and line color color.

x: (number) x-coordinate of center of circle. Must be onscreen.
y: (number) y-coordinate of center of circle. Must be onscreen.
radius: (number) radius of circle. May put some portions of circle offscreen.
color: (number) A color, such as 0xF500. Not a string. Planned: zmg.nametocolor("red") function.

zmg.keyMenu()

zmg.fastKeyMenu()

Get a keypress, and handle the [MENU] key if pressed. This is blocking, meaning that it will not return until a key is pressed, and will therefore not return zero. Takes no arguments, returns a number.

zmg.keyMenuFast()

zmg.fastKeyMenu()

Get a keypress, and handle the [MENU] key if pressed. This is non-blocking, and returns zero if no key is pressed. Takes no arguments, returns a number.