杂项功能tic80本页总览tic80 MapRemapCallback 类型: 类型定义。 描述: map() 函数的重映射回调函数类型。 签名: local type MapRemapCallback = function(tile: number, x: number, y: number): number, number | nil, number | nil 参数: 参数名类型描述tilenumber位置 (x, y) 处的图块 IDxnumber图块的 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-65Minus = 37Equals = 38LeftBracket = 39RightBracket = 40Backslash = 41Semicolon = 42Apostrophe = 43Grave = 44Comma = 45Period = 46Slash = 47Space = 48Tab = 49Return = 50Backspace = 51Delete = 52Insert = 53PageUp = 54PageDown = 55Home = 56End = 57Up = 58Down = 59Left = 60Right = 61CapsLock = 62Ctrl = 63Shift = 64Alt = 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 << 0Sprites = 1 << 1Map = 1 << 2Sfx = 1 << 3Music = 1 << 4Palette = 1 << 5Flags = 1 << 6Screen = 1 << 7banknumber[可选] 库编号(默认: 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)。