This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold 对于游戏对象, 组件和 GUI 节点暴露了很多可读可写可用作动画的属性. 分为以下各种类型:
这些属性, 有的用一般函数访问, 有的用特定的函数访问. 大多数都能用于动画. 引擎提供的属性动画功能比(在 update()
函数里自己做动画更方便, 而且性能更好.
组合类属性 vector3
, vector4
还有 quaternion
包含其子属性 (x
, y
, z
和 w
). 可以用属性名加点 (.
) 来访问. 比如, 设置位置的x子属性:
-- Set the x positon of "game_object" to 10.
go.set("game_object", "position.x", 10)
go.get()
, go.set()
和 go.animate()
函数第一个参数是游戏对象引用, 第二个参数是属性id. 游戏对象或者组件的引用可以是字符串, hash 或者 URL. URL 引用详情请见 定位教程. 属性id是属性名字符串或者hash:
-- Set the x-scale of the sprite component
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)
对于 GUI 节点, 访问属性需要特定函数并且需要提供节点引用作为第一个参数:
-- Get the color of the button
local node = gui.get_node("button")
local color = gui.get_color(node)
所有游戏对象属性和一些组件属性可以在运行时进行读写. 使用 go.get()
函数读取属性, 使用 go.set()
函数写入属性. 很多属性都可以使用 go.animate()
函数制作属性动画. 还有一小部分属性是只读的.
get
go.get()
读取.get+set
go.get()
读取并且可以使用 go.set()
写入. 数值类型的属性可以使用 go.animate()
制作属性动画.游戏对象属性
属性 | 描述 | 类型 | |
---|---|---|---|
position | 游戏对象的位置坐标. | vector3 |
get+set |
rotation | 游戏对象的旋转, 以四元数表示. | quaternion |
get+set |
euler | 游戏对象的旋转, 以欧拉角表示. | vector3 |
get+set |
scale | 游戏对象的非等比缩放, 以向量表示. 比如在 x 和 y 方向放大2倍, 就是 vmath.vector3(2.0, 2.0, 0) | vector3 |
get+set |
对于位移专用的函数也是有的; 即 go.get_position()
, go.set_position()
, go.get_rotation()
, go.set_rotation()
, go.get_scale()
和 go.set_scale()
.
SPRITE 组件属性
属性 | 描述 | 类型 | |
---|---|---|---|
size | sprite 原始尺寸 — 从图集图片而定的尺寸. | vector3 |
get |
image | sprite 纹理路径hash. | hash |
get |
scale | sprite 非等比缩放. | vector3 |
get+set |
material | sprite 使用的材质. | hash |
get+set |
cursor | 动画播放头位置 (取值范围 0–1). | number |
get+set |
playback_rate | 逐帧动画播放速率. | number |
get+set |
COLLISION OBJECT 组件属性
属性 | 描述 | 类型 | |
---|---|---|---|
mass | 碰撞对象的质量. | number |
get |
linear_velocity | 碰撞对象当前的线性速度. | vector3 |
get |
angular_velocity | 碰撞对象当前的旋转速度. | vector3 |
get |
linear_damping | 碰撞对象当前的线性阻尼. | vector3 |
get+set |
angular_damping | 碰撞对象当前的旋转阻尼. | vector3 |
get+set |
MODEL (3D) 组件属性
属性 | 描述 | 类型 | |
---|---|---|---|
animation | 当前动画. | hash |
get |
texture0 | 模型的纹理路径hash. | hash |
get |
cursor | 当前动画播放头 (取值范围 0-1). | number |
get+set |
playback_rate | 当前动画播放速率. 即播放速度倍数. | number |
get+set |
material | 模型所用材质. | hash |
get+set |
LABEL 组件属性
属性 | 描述 | 类型 | |
---|---|---|---|
scale | 文本标签的缩放. | vector3 |
get+set |
color | 文本标签的颜色. | vector4 |
get+set |
outline | 文本标签的轮廓. | vector4 |
get+set |
shadow | 文本标签的阴影. | vector4 |
get+set |
size | 文本标签的大小. 如果开启换行的话文本标签大小会被约束. | vector3 |
get+set |
material | 文本标签所用材质. | hash |
get+set |
font | 文本标签所用字体. | hash |
get+set |
GUI 节点也有属性, 但是要使用特定的读写函数. 每个属性都有对应的 get- 和 set- 函数. 还有一系列预定义常量可以用于属性动画. 引用属性可以使用属性名字符串, 或者属性名字符串hash.
position
(或 gui.PROP_POSITION
)rotation
(或 gui.PROP_ROTATION
)scale
(或 gui.PROP_SCALE
)color
(或 gui.PROP_COLOR
)outline
(或 gui.PROP_OUTLINE
)shadow
(或 gui.PROP_SHADOW
)size
(或 gui.PROP_SIZE
)fill_angle
(或 gui.PROP_FILL_ANGLE
)inner_radius
(或 gui.PROP_INNER_RADIUS
)slice9
(或 gui.PROP_SLICE9
)注意颜色属性是一个 vector4 分别对应 RGBA 值:
x
y
z
w
GUI 节点属性
属性 | 描述 | 类型 | |
---|---|---|---|
color | 节点颜色. | vector4 |
gui.get_color() gui.set_color() |
outline | 节点轮廓. | vector4 |
gui.get_outline() gui.set_outline() |
position | 节点位置. | vector3 |
gui.get_position() gui.set_position() |
rotation | 节点旋转, 以三轴欧拉角表示. | vector3 |
gui.get_rotation() gui.set_rotation() |
scale | 节点缩放, 以三轴缩放倍数表示. | vector3 |
gui.get_scale() gui.set_scale() |
shadow | 节点阴影. | vector4 |
gui.get_shadow() gui.set_shadow() |
size | 界定非等比大小. | vector3 |
gui.get_size() gui.set_size() |
fill_angle | 饼图填充角, 以逆时针角度表示. | number |
gui.get_fill_angle() gui.set_fill_angle() |
inner_radius | 饼图内半径. | number |
gui.get_inner_radius() gui.set_inner_radius() |
slice9 | 九宫格节点四边距. | vector4 |
gui.get_slice9() gui.set_slice9() |
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB