跳到主要内容

tic80

MapRemapCallback

类型: 类型定义。

描述:

  map() 函数的重映射回调函数类型。

签名:

local type MapRemapCallback = function(tile: number, x: number, y: number): number, number | nil, number | nil

参数:

参数名类型描述
tilenumber位置 (x, y) 处的图块 ID
xnumber图块的 X 坐标
ynumber图块的 Y 坐标

返回值:

返回类型描述
number, number | nil, number | nil包含 [tile, flip, rotate] 的元组

btn

类型: 函数。

描述:

  检查按钮是否当前被按下。

签名:

global btn: function(id?: number): boolean

参数:

参数名类型描述
idnumber[可选] 按钮 ID (0-31)。如果省略,检查任意按钮是否有按下。
所有玩家的按钮 ID。
玩家 1: 上 0、下 1、左 2、右 3、A 4、B 5、X 6、Y 7
玩家 2: 上 8、下 9、左 10、右 11、A 12、B 13、X 14、Y 15
玩家 3: 上 16、下 17、左 18、右 19、A 20、B 21、X 22、Y 23
玩家 4: 上 24、下 25、左 26、右 27、A 28、B 29、X 30、Y 31

返回值:

返回类型描述
boolean如果按钮被按下则返回 true,否则返回 false。

btnp

类型: 函数。

描述:

  检查按钮是否刚刚被按下(在本帧)。

签名:

global btnp: function(id?: number, hold?: number, period?: number): boolean

参数:

参数名类型描述
idnumber[可选] 按钮 ID (0-31)。如果省略,检查所有按钮。
holdnumber[可选] 按住时间(以帧为单位)。
periodnumber[可选] 重复周期(以帧为单位)。

返回值:

返回类型描述
boolean如果按钮刚刚被按下则返回 true,否则返回 false。

key

类型: 函数。

描述:

  检查键盘按键是否当前被按下。

签名:

global key: function(code?: number): boolean

参数:

参数名类型描述
codenumber[可选] 按键代码。如果省略,检查所有按键。
字母 A-Z: 0-25
数字 0-9: 27-36
特殊键: 37-65
Minus = 37
Equals = 38
LeftBracket = 39
RightBracket = 40
Backslash = 41
Semicolon = 42
Apostrophe = 43
Grave = 44
Comma = 45
Period = 46
Slash = 47
Space = 48
Tab = 49
Return = 50
Backspace = 51
Delete = 52
Insert = 53
PageUp = 54
PageDown = 55
Home = 56
End = 57
Up = 58
Down = 59
Left = 60
Right = 61
CapsLock = 62
Ctrl = 63
Shift = 64
Alt = 65

返回值:

返回类型描述
boolean如果按键被按下则返回 true,否则返回 false。

keyp

类型: 函数。

描述:

  检查键盘按键是否刚刚被按下(在本帧)。

签名:

global keyp: function(code?: number, hold?: number, period?: number): boolean

参数:

参数名类型描述
codenumber[可选] 按键代码。如果省略,检查所有按键。
holdnumber[可选] 按住时间(以帧为单位)。
periodnumber[可选] 重复周期(以帧为单位)。

返回值:

返回类型描述
boolean如果按键刚刚被按下则返回 true,否则返回 false。

mouse

类型: 函数。

描述:

  获取当前鼠标状态。

签名:

global mouse: function(): number, number, number, number, number, number, number

返回值:

返回类型描述
number, number, number, number, number, number, number包含 [x, y, left, middle, right, scrollx, scrolly] 的多返回值

clip

类型: 函数。

描述:

  设置绘制裁剪区域。

签名:

global clip: function(x: number, y: number, w: number, h: number)

参数:

参数名类型描述
xnumber裁剪区域的 X 坐标。
ynumber裁剪区域的 Y 坐标。
wnumber裁剪区域的宽度。
hnumber裁剪区域的高度。

cls

类型: 函数。

描述:

  用颜色清空屏幕。

签名:

global cls: function(color?: number)

参数:

参数名类型描述
colornumber[可选] 颜色索引(默认: 0)。

circ

类型: 函数。

描述:

  绘制填充圆形。

签名:

global circ: function(x: number, y: number, radius: number, color: number)

参数:

参数名类型描述
xnumber圆心的 X 坐标。
ynumber圆心的 Y 坐标。
radiusnumber圆的半径。
colornumber颜色索引。

circb

类型: 函数。

描述:

  绘制圆形轮廓。

签名:

global circb: function(x: number, y: number, radius: number, color: number)

参数:

参数名类型描述
xnumber圆心的 X 坐标。
ynumber圆心的 Y 坐标。
radiusnumber圆的半径。
colornumber颜色索引。

elli

类型: 函数。

描述:

  绘制填充椭圆。

签名:

global elli: function(x: number, y: number, a: number, b: number, color: number)

参数:

参数名类型描述
xnumber椭圆中心的 X 坐标。
ynumber椭圆中心的 Y 坐标。
anumber水平半径。
bnumber垂直半径。
colornumber颜色索引。

ellib

类型: 函数。

描述:

  绘制椭圆轮廓。

签名:

global ellib: function(x: number, y: number, a: number, b: number, color: number)

参数:

参数名类型描述
xnumber椭圆中心的 X 坐标。
ynumber椭圆中心的 Y 坐标。
anumber水平半径。
bnumber垂直半径。
colornumber颜色索引。

line

类型: 函数。

描述:

  绘制直线。

签名:

global line: function(x0: number, y0: number, x1: number, y1: number, color: number)

参数:

参数名类型描述
x0number起点的 X 坐标。
y0number起点的 Y 坐标。
x1number终点的 X 坐标。
y1number终点的 Y 坐标。
colornumber颜色索引。

pix

类型: 函数。

描述:

  获取或设置像素颜色。

签名:

global pix: function(x: number, y: number, color?: number): number

参数:

参数名类型描述
xnumberX 坐标。
ynumberY 坐标。
colornumber?可选的颜色索引。如果提供,则设置像素颜色。

返回值:

返回类型描述
number指定位置的颜色索引。

print

类型: 函数。

描述:

  在屏幕上打印文本。

签名:

global print: function(text: string, x?: number, y?: number, color?: number, fixed?: boolean, scale?: number, smallfont?: boolean): number

参数:

参数名类型描述
textstring要打印的文本。
xnumber[可选] X 坐标(默认: 0)。
ynumber[可选] Y 坐标(默认: 0)。
colornumber[可选] 颜色索引(默认: 12)。
fixedboolean[可选] 等宽字体标志(默认: false)。
scalenumber[可选] 缩放因子(默认: 1)。
smallfontboolean[可选] 小字体标志(默认: false)。

返回值:

返回类型描述
number打印文本的宽度。

rect

类型: 函数。

描述:

  绘制填充矩形。

签名:

global rect: function(x: number, y: number, w: number, h: number, color: number)

参数:

参数名类型描述
xnumber左上角的 X 坐标。
ynumber左上角的 Y 坐标。
wnumber矩形的宽度。
hnumber矩形的高度。
colornumber颜色索引。

rectb

类型: 函数。

描述:

  绘制矩形轮廓。

签名:

global rectb: function(x: number, y: number, w: number, h: number, color: number)

参数:

参数名类型描述
xnumber左上角的 X 坐标。
ynumber左上角的 Y 坐标。
wnumber矩形的宽度。
hnumber矩形的高度。
colornumber颜色索引。

spr

类型: 函数。

描述:

  绘制精灵。

签名:

global spr: function(id: number, x: number, y: number, transparent?: number, scale?: number, flip?: number, rotate?: number, w?: number, h?: number)

参数:

参数名类型描述
idnumber精灵 ID。
xnumberX 坐标。
ynumberY 坐标。
transparentnumber[可选] 透明颜色索引(默认: -1,无透明)。
scalenumber[可选] 缩放因子(默认: 1)。
flipnumber[可选] 翻转标志:1=水平,2=垂直,3=两者(默认: 0)。
rotatenumber[可选] 旋转:1=90°,2=180°,3=270° 顺时针(默认: 0)。
wnumber[可选] 精灵宽度(以图块为单位,默认: 1)。
hnumber[可选] 精灵高度(以图块为单位,默认: 1)。

tri

类型: 函数。

描述:

  绘制填充三角形。

签名:

global tri: function(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, color: number)

参数:

参数名类型描述
x1number第一个顶点的 X 坐标。
y1number第一个顶点的 Y 坐标。
x2number第二个顶点的 X 坐标。
y2number第二个顶点的 Y 坐标。
x3number第三个顶点的 X 坐标。
y3number第三个顶点的 Y 坐标。
colornumber颜色索引。

trib

类型: 函数。

描述:

  绘制三角形轮廓。

签名:

global trib: function(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, color: number)

参数:

参数名类型描述
x1number第一个顶点的 X 坐标。
y1number第一个顶点的 Y 坐标。
x2number第二个顶点的 X 坐标。
y2number第二个顶点的 Y 坐标。
x3number第三个顶点的 X 坐标。
y3number第三个顶点的 Y 坐标。
colornumber颜色索引。

ttri

类型: 函数。

描述:

  绘制纹理三角形。

签名:

global ttri: function(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, u1: number, v1: number, u2: number, v2: number, u3: number, v3: number, texsrc?: number, chromakey?: number, z1?: number, z2?: number, z3?: number)

参数:

参数名类型描述
x1number第一个顶点的 X 坐标。
y1number第一个顶点的 Y 坐标。
x2number第二个顶点的 X 坐标。
y2number第二个顶点的 Y 坐标。
x3number第三个顶点的 X 坐标。
y3number第三个顶点的 Y 坐标。
u1number第一个顶点的 U 纹理坐标。
v1number第一个顶点的 V 纹理坐标。
u2number第二个顶点的 U 纹理坐标。
v2number第二个顶点的 V 纹理坐标。
u3number第三个顶点的 U 纹理坐标。
v3number第三个顶点的 V 纹理坐标。
texsrcnumber[可选] 纹理源(默认: 0)。
chromakeynumber[可选] 色度键颜色索引(默认: -1)。
z1number[可选] 第一个顶点的 Z 坐标(默认: 0)。
z2number[可选] 第二个顶点的 Z 坐标(默认: 0)。
z3number[可选] 第三个顶点的 Z 坐标(默认: 0)。

font

类型: 函数。

描述:

  使用自定义字体绘制文本。

签名:

global font: function(text: string, x: number, y: number, transparent?: number, charWidth?: number, charHeight?: number, fixed?: boolean, scale?: number): number

参数:

参数名类型描述
textstring要绘制的文本。
xnumberX 坐标。
ynumberY 坐标。
transparentnumber[可选] 透明颜色索引。
charWidthnumber[可选] 字符宽度。
charHeightnumber[可选] 字符高度。
fixedboolean[可选] 等宽字体标志(默认: false)。
scalenumber[可选] 缩放因子(默认: 1)。

返回值:

返回类型描述
number绘制文本的宽度。

map

类型: 函数。

描述:

  绘制地图图块层。

签名:

global map: function(x?: number, y?: number, w?: number, h?: number, sx?: number, sy?: number, colorkey?: number, scale?: number, remap?: MapRemapCallback)

参数:

参数名类型描述
xnumber[可选] 地图 X 坐标(默认: 0)。
ynumber[可选] 地图 Y 坐标(默认: 0)。
wnumber[可选] 宽度(以图块为单位,默认: 30)。
hnumber[可选] 高度(以图块为单位,默认: 17)。
sxnumber[可选] 精灵 X 偏移(默认: 0)。
synumber[可选] 精灵 Y 偏移(默认: 0)。
colorkeynumber[可选] 透明颜色键(默认: -1)。
scalenumber[可选] 缩放因子(默认: 1)。
remapMapRemapCallback[可选] 重映射回调函数。

mget

类型: 函数。

描述:

  获取地图位置的图块 ID。

签名:

global mget: function(x: number, y: number): number

参数:

参数名类型描述
xnumber图块的 X 坐标。
ynumber图块的 Y 坐标。

返回值:

返回类型描述
number图块 ID。

mset

类型: 函数。

描述:

  设置地图位置的图块 ID。

签名:

global mset: function(x: number, y: number, id: number)

参数:

参数名类型描述
xnumber图块的 X 坐标。
ynumber图块的 Y 坐标。
idnumber要设置的图块 ID。

fget

类型: 函数。

描述:

  获取精灵标志。

签名:

global fget: function(sprite_id: number, flag: number): boolean

参数:

参数名类型描述
sprite_idnumber精灵 ID。
flagnumber标志索引 (0-7)。

返回值:

返回类型描述
boolean如果标志已设置则返回 true,否则返回 false。

fset

类型: 函数。

描述:

  设置精灵标志。

签名:

global fset: function(sprite_id: number, flag: number, bool: boolean)

参数:

参数名类型描述
sprite_idnumber精灵 ID。
flagnumber标志索引 (0-7)。
boolboolean要设置的标志值。

sfx

类型: 函数。

描述:

  播放音效。

签名:

global sfx: function(id: number, note?: number, duration?: number, channel?: number, volume?: number, speed?: number)

参数:

参数名类型描述
idnumber音效 ID。
notenumber[可选] 音符编号 (0-95,默认: 使用 SFX 音符)。
durationnumber[可选] 持续时间(以帧为单位,默认: -1,完整持续时间)。
channelnumber[可选] 通道编号 (0-3,默认: 0)。
volumenumber[可选] 音量 (0-15,默认: 15)。
speednumber[可选] 速度 (0-15,默认: 0)。

music

类型: 函数。

描述:

  播放音乐。

签名:

global music: function(track?: number, frame?: number, row?: number, loop?: boolean)

参数:

参数名类型描述
tracknumber[可选] 音轨编号(默认: -1,停止音乐)。
framenumber[可选] 帧编号(默认: -1)。
rownumber[可选] 行编号(默认: -1)。
loopboolean[可选] 循环标志(默认: true)。

peek

类型: 函数。

描述:

  从内存读取值。

签名:

global peek: function(addr: number, bits?: number): number

参数:

参数名类型描述
addrnumber内存地址。
bitsnumber[可选] 位宽:8、16 或 32(默认: 8)。

返回值:

返回类型描述
number从内存读取的值。

peek1

类型: 函数。

描述:

  从内存读取单个位。

签名:

global peek1: function(bitaddr: number): number

参数:

参数名类型描述
bitaddrnumber位地址。

返回值:

返回类型描述
number位值 (0 或 1)。

peek2

类型: 函数。

描述:

  从内存读取 2 字节值。

签名:

global peek2: function(addr2: number): number

参数:

参数名类型描述
addr2number内存地址(必须 2 字节对齐)。

返回值:

返回类型描述
number从内存读取的 16 位值。

peek4

类型: 函数。

描述:

  从内存读取 4 字节值。

签名:

global peek4: function(addr4: number): number

参数:

参数名类型描述
addr4number内存地址(必须 4 字节对齐)。

返回值:

返回类型描述
number从内存读取的 32 位值。

poke

类型: 函数。

描述:

  将值写入内存。

签名:

global poke: function(addr: number, val: number)

参数:

参数名类型描述
addrnumber内存地址。
valnumber要写入的值。

poke1

类型: 函数。

描述:

  将单个位写入内存。

签名:

global poke1: function(bitaddr: number, bitval: number)

参数:

参数名类型描述
bitaddrnumber位地址。
bitvalnumber位值 (0 或 1)。

poke2

类型: 函数。

描述:

  将 2 字节值写入内存。

签名:

global poke2: function(addr2: number, val2: number)

参数:

参数名类型描述
addr2number内存地址(必须 2 字节对齐)。
val2number要写入的 16 位值。

poke4

类型: 函数。

描述:

  将 4 字节值写入内存。

签名:

global poke4: function(addr4: number, val4: number)

参数:

参数名类型描述
addr4number内存地址(必须 4 字节对齐)。
val4number要写入的 32 位值。

pmem

类型: 函数。

描述:

  获取或设置持久内存值。

签名:

global pmem: function(index: number, val?: number): number

参数:

参数名类型描述
indexnumber持久内存索引 (0-255)。
valnumber[可选] 要设置的值。如果省略,返回当前值。

返回值:

返回类型描述
number持久内存值。

memcpy

类型: 函数。

描述:

  将内存从一个位置复制到另一个位置。

签名:

global memcpy: function(toaddr: number, fromaddr: number, len: number)

参数:

参数名类型描述
toaddrnumber目标地址。
fromaddrnumber源地址。
lennumber要复制的字节数。

memset

类型: 函数。

描述:

  将内存块设置为值。

签名:

global memset: function(addr: number, val: number, len: number)

参数:

参数名类型描述
addrnumber起始地址。
valnumber要设置的值。
lennumber要设置的字节数。

BDR

类型: 函数。

描述:

  BDR(Between Display Rows,显示行之间)回调允许你在每行扫描线渲染之间执行代码。 主要用于操作调色板。这样做可以为每行扫描线使用不同的调色板,因此一次可以使用超过 16 种颜色。

签名:

global BDR: function(scanline: number)

参数:

参数名类型描述
scanlinenumber即将绘制的扫描行 (0-143)。
0-3: 顶部边框
4-139: 第 0-135 行 (等价于 SCN(0-135))
140-143: 底部边框

TIC

类型: 函数。

描述:

  TIC 函数是主更新/绘制回调,必须在每个程序中存在。 它不接受参数,每秒被调用 60 次(60fps)。 在此处放置你的更新和绘制代码。

签名:

global TIC: function()

BOOT

类型: 函数。

描述:

  BOOT 函数在卡带启动时被调用一次。 它应用于启动/初始化代码。对于允许在全局作用域中编写代码的脚本语言(Lua 等), 使用 BOOT 比在全局作用域中包含源代码更可取。

签名:

global BOOT: function()

exit

类型: 函数。

描述:

  退出游戏。

签名:

global exit: function()

reset

类型: 函数。

描述:

  重置游戏。

签名:

global reset: function()

sync

类型: 函数。

描述:

  同步卡带数据。

签名:

global sync: function(mask?: number, bank?: number, tocart?: boolean)

参数:

参数名类型描述
masknumber[可选] 同步掩码(默认: 0,同步所有)。
Tiles = 1 << 0
Sprites = 1 << 1
Map = 1 << 2
Sfx = 1 << 3
Music = 1 << 4
Palette = 1 << 5
Flags = 1 << 6
Screen = 1 << 7
banknumber[可选] 库编号(默认: 0)。
tocartboolean[可选] 保存到卡带标志(默认: false)。

time

类型: 函数。

描述:

  获取当前时间(以毫秒为单位)。

签名:

global time: function(): number

返回值:

返回类型描述
number当前时间(以毫秒为单位)。

tstamp

类型: 函数。

描述:

  获取时间戳。

签名:

global tstamp: function(): number

返回值:

返回类型描述
number时间戳值。

trace

类型: 函数。

描述:

  输出跟踪消息。

签名:

global trace: function(msg: string, color?: number)

参数:

参数名类型描述
msgstring要输出的消息。
colornumber[可选] 颜色索引。

vbank

类型: 函数。

描述:

  切换视频库。

签名:

global vbank: function(bank: number)

参数:

参数名类型描述
banknumber库编号 (0 或 1)。