组件:全息影像

此组件由全息投影仪提供。
以下函数可用于创建全息影像,其分辨率为48x32x48,投影范围最大为9x6x9格。2级全息投影仪的分辨率并未提高,但是可以用至多三种颜色显示全息投影(1级全息投影仪只能用一种)。

组件名:hologram

回调函数:

  • clear()
    清除全息影像。

  • get(x:number, y:number, z:number):number
    返回全息影像指定坐标处的值。

  • set(x:number, y:number, z:number, value:number or boolean)
    设定全息影像指定坐标处的值。

  • fill(x:number, z:number[, minY:number], maxY:number, value:number)
    用给定值填充指定柱状区域中的一个区间,只会覆写区间内的体素。若省略minY则默认为1。作用范围包含区间的两端。
    注意:在1.3.3版本前并没有minY参数,指定高度处及其下方的所有体素都将被赋值,指定高度上方的所有体素都不会被赋值。

  • copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)
    遵从给定的位置变换,复制一个柱状区域。

  • getScale():number
    返回当前全息影像的渲染缩放比例。

  • setScale(value:number)
    设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。

  • getTranslation:number, number, number
    返回当前的位置变换偏移量。

  • setTranslation(x:number, y:number, z:number) 设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。

  • maxDepth():number
    全息影像支持的色深。

  • getPaletteColor(index:number):number
    获取定义给指定值的16进制颜色。

  • setPaletteColor(index:number, value:number):number
    设置定义给指定值的16进制颜色。

下面是一个简单的程序样例,可用于设定不同体素的值:

snippet.lua
local component = require("component")
local hologram = component.hologram
local args = {...}
hologram.set(tonumber(args[1]), tonumber(args[2]), tonumber(args[3]), args[4] == "true" or args[4] == "on")

使用例(假设上述程序被保存为holo-set.lua):
# holo-set 16 8 20 true

高级样例:

  • Holo Flow
    此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。
    - Holo Text
    此程序生成了一张随机的高度图,并在其上方显示了滚动的文本。
    请注意,第二个样例要比第一个高级的多。
    重要事项:两个脚本都需要同一个文件夹中有noise.lua脚本才能工作。

目录