Manuals
Manuals




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

Propiedades

Defold expone propiedades para objetos de juego (Game objects), componentes (Components) y nodos GUI que se pueden leer, definir y animar. Existen los siguientes tipos de propiedades:

  • Transformaciones de objetos de juego definidas por el sistema (posición, rotación y escala) y propiedades específicas de componentes (por ejemplo, el tamaño en píxeles de un sprite o la masa de un objeto de colisión)
  • Propiedades de componentes de script definidas por el usuario en scripts Lua (consulta la documentación de propiedades de script para más detalles)
  • Propiedades de nodos GUI
  • Constantes de shader definidas en shaders y archivos de material (consulta la documentación de material para más detalles)

Las propiedades numéricas muestran un control de arrastre cuando pasas el cursor sobre su campo de entrada. Puedes aumentar o disminuir su valor arrastrando el control hacia la derecha/izquierda o arriba/abajo, respectivamente.

Según dónde se encuentre una propiedad, accedes a ella mediante una función genérica o una función específica de la propiedad. Muchas de las propiedades se pueden animar automáticamente. Se recomienda encarecidamente animar propiedades mediante el sistema integrado en vez de manipularlas directamente (dentro de una función update()), tanto por rendimiento como por comodidad.

Las propiedades compuestas de tipo vector3, vector4 o quaternion también exponen sus subcomponentes (x, y, z y w). Puedes hacer referencia a los componentes individualmente añadiendo al nombre un punto (.) y el nombre del componente. Por ejemplo, para definir el componente x de la posición de un objeto de juego:

-- Define la posición x de "game_object" en 10.
go.set("game_object", "position.x", 10)

Las funciones go.get(), go.set() y go.animate() toman una referencia como primer parámetro y un identificador de propiedad como segundo. La referencia identifica el objeto de juego o componente, y puede ser un string, un hash o una URL. Las URL se explican en detalle en el manual de direccionamiento. El identificador de propiedad es un string o hash que nombra la propiedad:

-- Define la escala x del componente sprite
local url = msg.url("#sprite")
local prop = hash("scale.x")
go.set(url, prop, 2.0)

En los nodos GUI, el identificador del nodo se proporciona como primer parámetro a la función específica de la propiedad:

-- Obtiene el color del botón
local node = gui.get_node("button")
local color = gui.get_color(node)

Propiedades de objetos de juego y componentes

Todos los objetos de juego, y algunos tipos de componente, tienen propiedades que se pueden leer y manipular en tiempo de ejecución. Obtén estos valores con go.get() y defínelos con go.set(). Según el tipo del valor de la propiedad, puedes animar los valores con go.animate(). Un pequeño conjunto de propiedades es de solo lectura.

get
Se puede leer con go.get().
get+set
Se puede leer con go.get() y escribir con go.set(). Los valores numéricos se pueden animar con go.animate().

PROPIEDADES DE OBJETOS DE JUEGO

propiedad descripción tipo  
position La posición local del objeto de juego. vector3 get+set
rotation Rotación local del objeto de juego, expresada como un quaternion. quaternion get+set
euler Rotación local del objeto de juego, ángulos de Euler. vector3 get+set
scale Escala local no uniforme del objeto de juego, expresada como un vector donde cada componente contiene un multiplicador a lo largo de cada eje. Para duplicar el tamaño en x e y, proporciona vmath.vector3(2.0, 2.0, 0) vector3 get+set
scale.xy Escala local no uniforme del objeto de juego, expresada como un vector donde cada componente contiene un multiplicador a lo largo de los ejes X e Y. vector3 get+set

También existen funciones específicas para trabajar con la transformación del objeto de juego; son go.get_position(), go.set_position(), go.get_rotation(), go.set_rotation(), go.get_scale(), go.set_scale() y go.set_scale_xy().

PROPIEDADES DEL COMPONENTE SPRITE

propiedad descripción tipo  
size El tamaño no escalado del sprite, su tamaño tal como se toma del atlas de origen. vector3 get
image El hash de la ruta de textura del sprite. hash get
scale Escala no uniforme del sprite. vector3 get+set
scale.xy Escala no uniforme del sprite a lo largo de los ejes X e Y. vector3 get+set
material El material que usa el sprite. hash get+set
cursor Posición (entre 0–1) del cursor de reproducción. number get+set
playback_rate La velocidad de reproducción de la animación flipbook, expresada en fotogramas por segundo (FPS). number get+set

PROPIEDADES DEL COMPONENTE COLLISION OBJECT

propiedad descripción tipo  
mass La masa del objeto de colisión. number get
linear_velocity La velocidad lineal actual del objeto de colisión. vector3 get
angular_velocity La velocidad angular actual del objeto de colisión. vector3 get
linear_damping Amortiguación lineal del objeto de colisión. vector3 get+set
angular_damping Amortiguación angular del objeto de colisión. vector3 get+set

PROPIEDADES DEL COMPONENTE MODEL (3D)

propiedad descripción tipo  
animation La animación actual. hash get
texture0 El hash de la ruta de textura del modelo. hash get
cursor Posición (entre 0–1) del cursor de reproducción. number get+set
playback_rate La tasa de reproducción de la animación. Un multiplicador de la tasa de reproducción de la animación. number get+set
material El material que usa el modelo. hash get+set

PROPIEDADES DEL COMPONENTE LABEL

propiedad descripción tipo  
scale La escala del label. vector3 get+set
scale.xy La escala del label a lo largo de los ejes X e Y. vector3 get+set
color El color del label. vector4 get+set
outline El color del contorno del label. vector4 get+set
shadow El color de la sombra del label. vector4 get+set
size El tamaño del label. El tamaño restringirá el texto si el salto de línea está activado. vector3 get+set
material El material que usa el label. hash get+set
font La fuente que usa el label. hash get+set

Propiedades de nodos GUI

Los nodos GUI también contienen propiedades, pero se leen y escriben mediante funciones getter y setter especiales. Para cada propiedad existe una función get y una función set. También hay un conjunto de constantes definidas para usarlas como referencia a las propiedades al animarlas. Si necesitas hacer referencia a componentes individuales de una propiedad, tienes que usar el nombre de string de la propiedad o un hash del nombre de string.

  • position (o gui.PROP_POSITION)
  • rotation (o gui.PROP_ROTATION)
  • scale (o gui.PROP_SCALE)
  • color (o gui.PROP_COLOR)
  • outline (o gui.PROP_OUTLINE)
  • shadow (o gui.PROP_SHADOW)
  • size (o gui.PROP_SIZE)
  • fill_angle (o gui.PROP_FILL_ANGLE)
  • inner_radius (o gui.PROP_INNER_RADIUS)
  • slice9 (o gui.PROP_SLICE9)

Ten en cuenta que todos los valores de color están codificados en un vector4, donde los componentes corresponden a los valores RGBA:

x
El componente de color rojo
y
El componente de color verde
z
El componente de color azul
w
El componente alfa

PROPIEDADES DE NODOS GUI

propiedad descripción tipo  
color El color frontal del nodo. vector4 gui.get_color() gui.set_color()
outline El color del contorno del nodo. vector4 gui.get_outline() gui.set_outline()
position La posición del nodo. vector3 gui.get_position() gui.set_position()
rotation La rotación del nodo expresada como ángulos de Euler, grados rotados alrededor de cada eje. vector3 gui.get_rotation() gui.set_rotation()
scale La escala del nodo expresada como un multiplicador a lo largo de cada eje. vector3 gui.get_scale() gui.set_scale()
shadow El color de la sombra del nodo. vector4 gui.get_shadow() gui.set_shadow()
size El tamaño sin escalar del nodo. vector3 gui.get_size() gui.set_size()
fill_angle El ángulo de relleno de un nodo Pie expresado en grados en sentido antihorario. number gui.get_fill_angle() gui.set_fill_angle()
inner_radius El radio interior de un nodo Pie. number gui.get_inner_radius() gui.set_inner_radius()
slice9 Las distancias de borde de un nodo slice9. vector4 gui.get_slice9() gui.set_slice9()