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
O Defold expõe propriedades para objetos de jogo, componentes e nodes de GUI que podem ser lidas, definidas e animadas. Existem os seguintes tipos de propriedades:
Propriedades numéricas exibem uma alça de arrasto quando você passa o mouse sobre o campo de entrada. Você pode aumentar/diminuir o valor arrastando a alça para a direita/esquerda ou para cima/baixo, respectivamente.
Dependendo de onde uma propriedade é encontrada, você a acessa por meio de uma função genérica ou de uma função específica da propriedade. Muitas propriedades podem ser animadas automaticamente. Animar propriedades pelo sistema integrado é altamente recomendado em vez de manipular as propriedades você mesmo (dentro de uma função update()), tanto por motivos de desempenho quanto de conveniência.
Propriedades compostas dos tipos vector3, vector4 ou quaternion também expõem seus subcomponentes (x, y, z e w). Você pode endereçar os componentes individualmente adicionando um ponto (.) e o nome do componente ao nome da propriedade. Por exemplo, para definir o componente x da posição de um objeto de jogo:
-- Define a posição x de "game_object" para 10.
go.set("game_object", "position.x", 10)
As funções go.get(), go.set() e go.animate() recebem uma referência como primeiro parâmetro e um identificador de propriedade como segundo. A referência identifica o objeto de jogo ou componente e pode ser uma string, um hash ou uma URL. URLs são explicadas em detalhe no manual de endereçamento. O identificador de propriedade é uma string ou hash que nomeia a propriedade:
-- Define a escala x do componente sprite
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)
Para nodes de GUI, o identificador do node é fornecido como primeiro parâmetro para a função específica da propriedade:
-- Obtém a cor do botão
local node = gui.get_node("button")
local color = gui.get_color(node)
Todos os objetos de jogo, e alguns tipos de componente, têm propriedades que podem ser lidas e manipuladas em tempo de execução. Leia esses valores com go.get() e escreva-os com go.set(). Dependendo do tipo de valor da propriedade, você pode animar os valores com go.animate(). Um pequeno conjunto de propriedades é somente leitura.
getgo.get().get+setgo.get() e escrita com go.set(). Valores numéricos podem ser animados com go.animate().PROPRIEDADES DE OBJETO DE JOGO
| propriedade | descrição | tipo | |
|---|---|---|---|
| position | A posição local do objeto de jogo. | vector3 |
get+set |
| rotation | Rotação local do objeto de jogo, expressa como um quaternion. | quaternion |
get+set |
| euler | Rotação local do objeto de jogo, em ângulos de Euler. | vector3 |
get+set |
| scale | Escala local não uniforme do objeto de jogo, expressa como um vetor onde cada componente contém um multiplicador ao longo de cada eixo. Para dobrar o tamanho em x e y, forneça vmath.vector3(2.0, 2.0, 0) | vector3 |
get+set |
| scale.xy | Escala local não uniforme do objeto de jogo, expressa como um vetor onde cada componente contém um multiplicador ao longo dos eixos X e Y. | vector3 |
get+set |
Também existem funções específicas para trabalhar com a transformação do objeto de jogo; elas são go.get_position(), go.set_position(), go.get_rotation(), go.set_rotation(), go.get_scale(), go.set_scale() e go.set_scale_xy().
PROPRIEDADES DE COMPONENTE SPRITE
| propriedade | descrição | tipo | |
|---|---|---|---|
| size | O tamanho não escalado do sprite: seu tamanho conforme obtido do atlas de origem. | vector3 |
get |
| image | O hash do caminho da textura do sprite. | hash |
get |
| scale | Escala não uniforme do sprite. | vector3 |
get+set |
| scale.xy | Escala não uniforme do sprite ao longo dos eixos X e Y. | vector3 |
get+set |
| material | O material usado pelo sprite. | hash |
get+set |
| cursor | Posição (entre 0–1) do cursor de reprodução. | number |
get+set |
| playback_rate | A taxa de quadros da animação flipbook. | number |
get+set |
PROPRIEDADES DE COMPONENTE DE OBJETO DE COLISÃO
| propriedade | descrição | tipo | |
|---|---|---|---|
| mass | A massa do objeto de colisão. | number |
get |
| linear_velocity | A velocidade linear atual do objeto de colisão. | vector3 |
get |
| angular_velocity | A velocidade angular atual do objeto de colisão. | vector3 |
get |
| linear_damping | Amortecimento linear do objeto de colisão. | vector3 |
get+set |
| angular_damping | Amortecimento angular do objeto de colisão. | vector3 |
get+set |
PROPRIEDADES DE COMPONENTE MODEL (3D)
| propriedade | descrição | tipo | |
|---|---|---|---|
| animation | A animação atual. | hash |
get |
| texture0 | O hash do caminho da textura do modelo. | hash |
get |
| cursor | Posição (entre 0–1) do cursor de reprodução. | number |
get+set |
| playback_rate | A taxa de reprodução da animação. Um multiplicador da taxa de reprodução da animação. | number |
get+set |
| material | O material usado pelo modelo. | hash |
get+set |
PROPRIEDADES DE COMPONENTE LABEL
| propriedade | descrição | tipo | |
|---|---|---|---|
| scale | A escala do rótulo. | vector3 |
get+set |
| scale.xy | A escala do rótulo ao longo dos eixos X e Y. | vector3 |
get+set |
| color | A cor do rótulo. | vector4 |
get+set |
| outline | A cor de contorno do rótulo. | vector4 |
get+set |
| shadow | A cor da sombra do rótulo. | vector4 |
get+set |
| size | O tamanho do rótulo. O tamanho limitará o texto se a quebra de linha estiver habilitada. | vector3 |
get+set |
| material | O material usado pelo rótulo. | hash |
get+set |
| font | A fonte usada pelo rótulo. | hash |
get+set |
Nodes de GUI também contêm propriedades, mas elas são lidas e escritas por meio de funções getter e setter especiais. Para cada propriedade existe uma função get e uma função set. Também há um conjunto de constantes definidas para usar como referência às propriedades ao animá-las. Se você precisar se referir a componentes separados da propriedade, precisa usar o nome da propriedade como string, ou um hash do nome da string.
position (ou gui.PROP_POSITION)rotation (ou gui.PROP_ROTATION)scale (ou gui.PROP_SCALE)color (ou gui.PROP_COLOR)outline (ou gui.PROP_OUTLINE)shadow (ou gui.PROP_SHADOW)size (ou gui.PROP_SIZE)fill_angle (ou gui.PROP_FILL_ANGLE)inner_radius (ou gui.PROP_INNER_RADIUS)slice9 (ou gui.PROP_SLICE9)Observe que todos os valores de cor são codificados em um vector4, onde os componentes correspondem aos valores RGBA:
xyzwPROPRIEDADES DE NODE DE GUI
| propriedade | descrição | tipo | |
|---|---|---|---|
| color | A cor da face do node. | vector4 |
gui.get_color() gui.set_color() |
| outline | A cor do contorno do node. | vector4 |
gui.get_outline() gui.set_outline() |
| position | A posição do node. | vector3 |
gui.get_position() gui.set_position() |
| rotation | A rotação do node expressa como ângulos de Euler, em graus rotacionados ao redor de cada eixo. | vector3 |
gui.get_rotation() gui.set_rotation() |
| scale | A escala do node expressa como um multiplicador ao longo de cada eixo. | vector3 |
gui.get_scale() gui.set_scale() |
| shadow | A cor da sombra do node. | vector4 |
gui.get_shadow() gui.set_shadow() |
| size | O tamanho não escalado do node. | vector3 |
gui.get_size() gui.set_size() |
| fill_angle | O ângulo de preenchimento de um node pie expresso em graus no sentido anti-horário. | number |
gui.get_fill_angle() gui.set_fill_angle() |
| inner_radius | O raio interno de um node pie. | number |
gui.get_inner_radius() gui.set_inner_radius() |
| slice9 | As distâncias das bordas de um node slice9. | vector4 |
gui.get_slice9() gui.set_slice9() |