用户:Sandbox2017/沙箱

来自物理沙盘百科
跳转至: 导航搜索
源代码网址: https://gitee.com/git123hub/luajit-test/
二进制文件下载 QQ 群: 311562253 (有 80x25 和 80x30)
二进制文件下载网址 (百度网盘) :https://pan.baidu.com/s/1sl9gvet
二进制文件下载网址 (盛天网盘) :<链接已失效>
二进制文件下载网址 (uploadfiles.io, 30 天) :https://uploadfiles.io/herv8
二进制文件下载网址 (jkpan.cc) :http://www.jkpan.cc/download/FYwQFGsS
二进制文件下载网址 (蓝奏云网盘) : https://pan.lanzou.com/i0fr55c

console ( 控制台 ) API
  get_data ( [X, Y, 宽, 高, [窗口 ID]] ) -> ( 控制台快照 )
  put_data ( 控制台快照, [X, Y, [窗口 ID]] ) -> ( )
  draw_char ( 字符, X, Y, [重复次数, [窗口 ID]] ) -> ( )
  draw_char_inv ( 字符, X, Y, [重复次数, [窗口 ID]] ) -> ( )
  draw_char_decode ( 已编码的图案(字符串), X, Y, [窗口 ID] ) -> ( )
  read_char ( X, Y, [标志位, [窗口 ID]] ) -> ( 字符, [属性] )
  draw_line ( 字符, X1, Y1, X2, Y2, [窗口 ID] ) -> ( )
  draw_rect ( 字符, X, Y, 宽, 高, [窗口 ID] ) -> ( )
  fill_rect ( 字符, X, Y, 宽, 高, [窗口 ID] ) -> ( )
  fill_rect ( 字符, X, Y, 宽, 高, X 密度, Y 密度, [X 倾斜量, [X 偏移量, [窗口 ID]]] ) -> ( )
  clear_rect ( X, Y, 宽, 高, [窗口 ID] ) -> ( )
  draw_string ( 字符串/字符串数组, X, Y, [对齐方式, [窗口 ID]] ) -> ( )
  draw_str_v ( 字符串/字符串数组, X, Y, [对齐方式, [窗口 ID]] ) -> ( )
  clear ( [窗口 ID] ) -> ( )
  set_blink_area ( 属性, X, Y, [宽, 高] ) -> ( )
  clear_blink ( ) -> ( )
  delay ( 毫秒数 ) -> ( )
  rgb ( 红, 绿, 蓝 ) -> ( 颜色信息 )
  cmd2rgb ( CMD 颜色属性 ) -> ( 前景色, 背景色 )
  icebp ( ) -> ( )
  ident ( [参数, [...]] ) -> ( [参数, [...]] )
  open_cmd ( ) -> ( )
  restart ( ) -> ( )
  pop_message ( ) -> ( 从字符串队列中取出的字符串 )
  pop_message ( true ) -> ( 如果队列为空, 进入阻塞状态, 否则同无参数的 pop_message )
  常数/变量:
    LUA_CONSOLE = 0
    LUA_WINDOW = 1 ( 未使用 )
    XRES = 640 ( 随着分辨率的变化而变化 )
    YRES = 400 ( 随着分辨率的变化而变化 )
    XCHRS = 80 ( 随着分辨率的变化而变化 )
    YCHRS = 25 ( 随着分辨率的变化而变化 )
    EMPTY_WINDOW = -1 ( 用于 console.window.alloc )
    SOURCE_CODE = 自己源代码的网址
    GNUC = GCC 版本号
    handles[0] = 主线程的句柄
    handles[1] = 脚本线程的句柄
    标志位:
      FLAG_RESET_STACK = 0x1 ( 用于 reset_attribute )
      FLAG_READ_ATTR   = 0x1 ( 用于 read_char )

console.attribute ( 控制台颜色属性 ) API
  push ( [前景色, [背景色]] ) -> ( )
  pop ( [出栈个数] ) -> ( )
  set ( ) -> ( 前景色, 背景色 )
  set ( 前景色, [背景色] ) -> ( )
  reset ( [标志位] ) -> ( )
  swap ( ) -> ( )
  pushswap ( ) -> ( )
  gettop ( ) -> ( 栈顶指针 )
  settop ( 栈顶指针 ) -> ( )

console.character ( 控制台字体 ) API
  alloc ( [字符的 ASCII 码或字体数据] ) -> ( 新字符的 ASCII 码 ( -1 = 失败 ) )
  alloc_mult ( 字符个数 ) -> ( [多个字符的 ASCII 码 (最多 128 个)] )
  alloc_cont ( 字符个数 ) -> ( 新字符的 ASCII 码的起始位置 ( -1 = 失败 ) )
  free ( 字符的 ASCII 码, [...] ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  check ( 字符的 ASCII 码 ) -> ( 返回值 ( 相当于 console.character.get_data() ~= nil ) )
  fill_rect ( 字符的 ASCII 码或字体数据, 模式, X, Y, [宽, [高]] ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  new_data ( ) -> ( 空白的字体数据 )
  get_data ( 字符的 ASCII 码 ) -> ( 字体数据 )
  set_data ( 字符的 ASCII 码, 字体数据 ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  to_data ( 整数数组 ) -> ( 字体数据 )
  equal ( 字体数据 1, 字体数据 2 ) -> ( 返回值 ( true = 相等, false = 不相等 ) )
  band ( 字体数据, [...] ) -> ( 新字体数据 ( 按位与 ) )
  bor ( 字体数据, [...] ) -> ( 新字体数据 ( 按位或 ) )
  bnot ( 字体数据 ) -> ( 新字体数据 ( 按位非 ) )
  bxor ( 字体数据, [...] ) -> ( 新字体数据 ( 按位异或 ) )
  xshift ( 字体数据, X偏移, [循环移位标志] ) -> ( 新字体数据 ( X 方向位移 ) )
  yshift ( 字体数据, Y偏移, [循环移位标志] ) -> ( 新字体数据 ( Y 方向位移 ) )
  flip ( 字体数据 ) -> ( 新字体数据 )
  file ( 文件名, I/O 属性 ( true = 写入, false = 读取 ) ) -> ( )
  常数/变量:
    WIDTH = 8 ( 随着分辨率的变化而变化 )
    HEIGHT = 16 ( 随着分辨率的变化而变化 )
    标志位:
      FLIP_X = 1
      FLIP_Y = 2
      ROTATE = 3

console.random ( 伪随机数生成器 ( 通常是 MT19937 ) ) API
  pos ( ) -> ( X, Y )
  int ( ) -> ( 伪随机数, [...] )
  seed ( [随机数种子] ) -> ( )
  draw_char ( ) -> ( )

console.subconsole API
  open ( ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  close ( ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  print ( 字符串 ) -> ( )

console.window ( 控制台窗口 ) API
  alloc ( [窗口 ID] ) -> ( 新窗口 ID ( -1 = 失败 ) )
  free ( [窗口 ID] ) -> ( 返回值 ( true = 成功, false = 失败 ) )
  count ( ) -> ( 窗口计数 )
  capacity ( ) -> ( 窗口容量 )
  switch ( ) -> ( 窗口 ID )
  switch ( 窗口 ID ) -> ( )
  recalc ( ) -> ( )
  check ( 窗口 ID ) -> ( 返回值 ( true = 窗口存在, false = 窗口不存在 ) )
  file ( 文件名, I/O 属性 ( true = 写入, false = 读取 ), [窗口 ID] ) -> ( )
  fullscreen ( 全屏模式, [全屏快捷键] ) -> ( )
  next_window ( [bool is_prev] ) -> ( )

console.altmenu API
  suspend ( ) -> ( 返回值 )
  resume ( ) -> ( 返回值 )

console.int32 API
  imul ( int, [...] ) -> ( int )
  idiv ( int, int ) -> ( int )
  imod ( int, int ) -> ( int )
  ffs ( int ) -> ( int )
  clz ( int ) -> ( int )
  ctz ( int ) -> ( int )
  popcnt ( int ) -> ( int )
  parity ( int ) -> ( bool )
  mulh ( int, int ) -> ( int )
  imulh ( int, int ) -> ( int )

string ( 字符串 ) API:
  rep ( 源字符串, 重复次数 ) -> ( 目的字符串 )
  escape ( 源字符串 ) -> ( 目的字符串 )
  unescape ( 源字符串 ) -> ( 目的字符串 )
  align ( 源字符串, 对齐方式, 长度, [填充字符] ) -> ( 对齐后的字符串 )
  bracket_quote ( 源字符串 ) -> ( 加定界符之后的字符串 )
  range_expand ( 初始值, 最大/最小值, 增量 ) -> ( 字符串 )
  常数/变量:
    LEFT_ALIGN = -1 ( 任意负整数 )
    CENTER_ALIGN = 0
    RIGHT_ALIGN = 1 ( 任意正整数 )

bit ( 位操作 ) API:
  band ( 整数, [...] ) -> ( 按位与之后的整数 )
  bor ( 整数, [...] ) -> ( 按位或之后的整数 )
  bnot ( 整数 ) -> ( 按位非之后的整数 )
  bxor ( 整数, [...] ) -> ( 按位异或之后的整数 )
  lshift ( 整数, 位移 ) -> ( 按位左移之后的整数 )
  rshift ( 整数, 位移 ) -> ( 按位右移之后的整数 )
  arshift ( 整数, 位移 ) -> ( 算术按位右移之后的整数 )
  rol ( 整数, 位移 ) -> ( 循环左移之后的整数 )
  ror ( 整数, 位移 ) -> ( 循环右移之后的整数 )
  bswap ( 整数 ) -> ( 整数 )
  bitswap ( 整数 ) -> ( 整数 )
  extract ( r, f, w ) -> ( r' )
  replace ( r, v, f, w ) -> ( r' )

alt = 运行/退出切换窗口模式
alt + enter = 切换全屏模式
在切换窗口模式中, 有红色、绿色和灰色 3 个指针
  红色指针 = 当前运行的窗口 ( 相当于 command.window (command.GET, 2) )
  灰色指针 = 之前运行的窗口 ( 相当于 command.window (command.GET, 1) )
  绿色指针 = 正在选定的窗口 ( 相当于 command.window (command.GET, 0) )

命令行参数:
  --kiosk                      启用全屏模式
  --enable-blinking[,<period>] 启用闪烁模式
  --enable-underscore          启用下划线模式
  --no-alt-menu                停用切换窗口模式
  --alt=<filename>             设置 alt 模式函数
  --alt=@<filename>            设置 alt 模式闭包

组合函数:
(console.random.int()/2^32+0.5)               -- 生成 0~1 之间的随机数
console.system(string)                        -- 相当于 os.execute(string)