Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Referencia API

Referencia API Completa

También disponible en forma corta dentro del Editor mismo: image.png

Constructores de Activos

Los constructores crean los principales tipos de activos utilizados por el editor. Cuando asignas uno a una variable, el editor lo reconoce y te permite abrir el editor de activos correspondiente con Ctrl+Click.

Función Descripción
Sprite(width, height) Crea un activo sprite con las dimensiones especificadas
Scene() o Scene(name) Crea un activo de escena
Audio() Crea un activo de audio tipo tracker pequeño
Object() o Object(name) Crea un objeto de juego

Métodos de Lista

Crea listas con [] o [valor1, valor2, ...]. Lee y sobrescribe entradas con list[index], y itera con for (var i = 0; i < list.length(); i = i + 1).

Función Descripción
list.add(value) Agrega un valor al final de la lista
list.length() Devuelve el número de elementos en la lista
list.remove(index) Elimina el elemento en el índice dado
list.clear() Elimina todos los elementos de la lista

Operadores

Los operadores son pequeños símbolos que realizan cálculos comunes. El operador módulo es especialmente útil para envolver temporizadores, índices, pasos de animación o patrones repetidos.

Operador Descripción
% Módulo. Devuelve el residuo después de la división

Propiedades del Objeto

Los objetos son las cosas que tu script generalmente mueve y cambia durante el juego. Estas funciones leen o actualizan la posición, sprite, comportamiento de colisión, capa y tinte visual de un objeto.

Función Descripción
getX(obj) Devuelve la posición X del objeto
setX(obj, x) Establece la posición X del objeto
getY(obj) Devuelve la posición Y del objeto
setY(obj, y) Establece la posición Y del objeto
getVelocityX(obj) Devuelve la velocidad X del objeto
setVelocityX(obj, vx) Establece la velocidad X del objeto
getVelocityY(obj) Devuelve la velocidad Y del objeto
setVelocityY(obj, vy) Establece la velocidad Y del objeto
getName(obj) Devuelve el nombre del objeto
setName(obj, name) Establece el nombre del objeto
getSprite(obj) Devuelve el sprite del objeto
setSprite(obj, sprite) Asigna un sprite al objeto (restablece la animación al cuadro 0)
getLayer(obj) Devuelve la capa de dibujo del objeto
setLayer(obj, layer) Establece la capa de dibujo del objeto (más alto = dibujado más tarde)
getTint(obj) Devuelve el tinte como una lista [r, g, b, a]
setTint(obj, r, g, b, a) Establece el tinte de color del objeto (0-255 cada uno)
getCollisionType(obj) Devuelve el número del tipo de colisión
setCollisionType(obj, type) Establece el tipo de colisión

Funciones de Sprite

Las funciones de sprite permiten al código inspeccionar o modificar los datos de píxeles del sprite y la velocidad de animación. La mayoría de los juegos dibujan sprites en el editor, pero estas funciones son útiles para efectos procedurales, depuración o cambios simples en tiempo de ejecución.

Función Descripción
fillSprite(sprite, r, g, b, a) Llena todos los píxeles de todos los cuadros con un color RGBA sólido (0-255)
getPixel(sprite, frame, x, y) Devuelve [r,g,b,a] del píxel en (x,y) en el cuadro dado, o null si está fuera de límites
setPixel(sprite, frame, x, y, r, g, b, a) Establece el color del píxel en (x,y) en el cuadro dado. No hace nada si está fuera de límites
getAnimationFPS(sprite) Devuelve la velocidad de animación del sprite en cuadros por segundo
setAnimationFPS(sprite, fps) Establece la velocidad de animación del sprite en cuadros por segundo

Funciones de Animación

Las funciones de animación trabajan con objetos que utilizan sprites con múltiples cuadros. Úsalas cuando desees que el código inspeccione o fuerce el cuadro de animación actual.

Función Descripción
getFrame(obj) Devuelve el índice del cuadro de animación actual del objeto
setFrame(obj, frameIndex) Establece el cuadro de animación del objeto (restablece el temporizador)
getFrameCount(obj) Devuelve el número de cuadros en el sprite del objeto

Funciones de Transformación (Inversión/R rotación)

Las funciones de transformación cambian cómo se dibuja el sprite de un objeto sin editar el sprite en sí. Son buenas para reutilizar un sprite en múltiples direcciones.

Función Descripción
getFlipX(obj) Devuelve si el objeto está invertido horizontalmente
setFlipX(obj, flip) Establece la inversión horizontal. true = invertido, false = normal
getFlipY(obj) Devuelve si el objeto está invertido verticalmente
setFlipY(obj, flip) Establece la inversión vertical. true = invertido, false = normal
getRotation(obj) Devuelve la rotación del objeto en grados de 90 (0-3)
setRotation(obj, rot) Establece la rotación en grados de 90: 0=0, 1=90, 2=180, 3=270 grados en el sentido de las agujas del reloj

Nota: Estas transformaciones se aplican solo en el momento de renderizar. No afectan a las cajas de colisión ni a los datos de píxeles del sprite.

Tipos de Colisión

Los tipos de colisión deciden cómo participa un objeto en las verificaciones de colisión. Elige el tipo en función del rol del objeto: las paredes suelen ser estáticas, los jugadores suelen ser dinámicos y las recogidas suelen ser disparadores.

Constante Valor Descripción
COLLISION_NONE() 0 Sin detección de colisión
COLLISION_STATIC() 1 Colisiona pero no se mueve
COLLISION_DYNAMIC() 2 Colisiona y es empujado
COLLISION_TRIGGER() 3 Detecta colisión pero no bloquea

Funciones de Escena

Las funciones de escena controlan qué escena está activa, qué objetos están dentro de ella y configuraciones a nivel de escena como el color de fondo y la gravedad. También proporcionan ayudas de búsqueda para encontrar objetos en posiciones o por nombre.

Función Descripción
addObject(scene, obj) Agrega un objeto a una escena
removeObject(scene, obj) Elimina un objeto de una escena
setScene(scene) Establece la escena activa
getScene() Devuelve la escena activa actual
resetScene(scene) Restablece la escena a su estado inicial (tal como se diseñó en el editor)
setBackgroundColor(scene, r, g, b) Establece el color del fondo de la escena (RGB 0-255)
getBackgroundColor(scene) Devuelve el color de fondo como lista [r, g, b]
getGravityX(scene) Devuelve el componente de gravedad X de la escena
setGravityX(scene, gx) Establece el componente de gravedad X de la escena
getGravityY(scene) Devuelve el componente de gravedad Y de la escena
setGravityY(scene, gy) Establece el componente de gravedad Y de la escena (positivo = abajo)
getObjectAt(scene, x, y) Devuelve el primer objeto en el punto (x,y), o null
getObjectsAt(scene, x, y) Devuelve una lista de todos los objetos en el punto (x,y)
getObjectsInBox(scene, x, y, w, h) Devuelve todos los objetos que se superponen con la caja
getObjectByName(scene, name) Encuentra un objeto por nombre, o null si no se encuentra
getObjectCount(scene) Devuelve el número de objetos en la escena
getAllObjects(scene) Devuelve una lista de todos los objetos en la escena
isObjectInScene(scene, obj) Devuelve verdadero si el objeto está en la escena
getObjectsBySprite(scene, sprite) Devuelve todos los objetos que utilizan el sprite dado
getObjectsByCollisionType(scene, type) Devuelve todos los objetos con el tipo de colisión dado

Reproducción de Audio

Las funciones de reproducción de audio inician y detienen activos de audio desde el script. playAudio() devuelve un identificador para que puedas detener o verificar más tarde esa instancia de reproducción específica.

Función Descripción
playAudio(audio) Inicia un activo de audio y devuelve un identificador de reproducción
stopAudio(handle) Detiene un identificador de reproducción devuelto por playAudio()
isAudioPlaying(handle) Devuelve verdadero mientras el identificador de reproducción esté activo

Funciones de Pantalla

Las funciones de pantalla ayudan cuando necesitas conocer el tamaño de la ventana o convertir entre píxeles de pantalla y posiciones en el mundo. Esto es útil para apuntar con el ratón, detectar clics y UI consciente de la cámara.

Función Descripción
getScreenWidth() Devuelve el ancho de la pantalla/ventana en píxeles
getScreenHeight() Devuelve la altura de la pantalla/ventana en píxeles
screenToWorld(screenX, screenY) Convierte las coordenadas de píxeles de pantalla a coordenadas del mundo. Devuelve [worldX, worldY]
worldToScreen(worldX, worldY) Convierte las coordenadas del mundo a coordenadas de píxeles de pantalla. Devuelve [screenX, screenY]

Modo de Ventana

Controla el modo de ventana para juegos exportados. Estas funciones no tienen efecto al jugar en el editor (el editor tiene mayor autoridad sobre el estado de la ventana).

Constante Valor Descripción
WINDOW_WINDOWED() 0 Modo de ventana regular
WINDOW_MAXIMIZED() 1 Ventana maximizada (por defecto)
WINDOW_FULLSCREEN() 2 Pantalla completa sin bordes
Función Descripción
getWindowMode() Devuelve la constante del modo de ventana actual
setWindowMode(mode) Establece el modo de ventana. Solo funciona en juegos exportados

Ejemplo:

func start() {
    // Establece el modo de ventana (WINDOW_MAXIMIZED es el predeterminado para juegos exportados)
    setWindowMode(WINDOW_MAXIMIZED())
}

Nota: Si setWindowMode() nunca se llama en un juego exportado, el predeterminado es WINDOW_MAXIMIZED.

Funciones de UI

La UI utiliza una resolución de espacio de pantalla virtual. El espacio de UI predeterminado es 100 x 100. El tamaño de fuente se puede aumentar para los siguientes widgets de texto con uiPushFontSize(size) y restaurar con uiPopFontSize(). Los colores de fuente se pueden apilar con uiPushFontColor(r, g, b[, a]), y los rellenos de los elementos de UI se pueden apilar con uiPushElementColor(r, g, b[, a]). Al igual que el resto de la UI de modo inmediato, estas sobreescrituras se aplican mientras se construye la UI del marco actual. Si el tamaño empujado es 0 o menos, el motor utiliza un tamaño automático.

Función Descripción
getUIResolutionX() Devuelve el ancho virtual actual de la UI
setUIResolutionX(width) Establece el ancho virtual de la UI utilizado para las llamadas siguientes a la UI
getUIResolutionY() Devuelve la altura virtual actual de la UI
setUIResolutionY(height) Establece la altura virtual de la UI utilizada para las llamadas siguientes a la UI
uiPushFontSize(size) Envía una escala de tamaño de fuente para el texto de la UI posterior. Los valores <= 0 utilizan un tamaño automático
uiPopFontSize() Elimina la anulación del tamaño de fuente más reciente de la UI
uiPushFontColor(r, g, b) o uiPushFontColor(r, g, b, a) Envía una anulación de color de fuente para el texto de la UI posterior
uiPopFontColor() Elimina la anulación del color de fuente más reciente de la UI
uiPushElementColor(r, g, b) o uiPushElementColor(r, g, b, a) Envía una anulación de color de relleno para cajas, botones, alternadores, deslizadores y botones de imagen
uiPopElementColor() Elimina la anulación del color del elemento de la UI más reciente
uiLabel(text, x, y) Dibuja texto en espacio de pantalla en coordenadas virtuales de la UI
uiBox(x, y, w, h) Dibuja una caja de panel simple
uiButton(text, x, y, w, h) Dibuja un botón y devuelve uno de los constantes de estado UI_*()
uiToggle(text, value, x, y, w, h) Dibuja un alternador y devuelve el valor booleano actualizado
uiSlider(text, value, min, max, x, y, w, h) Dibuja un deslizador y devuelve el valor numérico actualizado
uiSprite(sprite, x, y) Dibuja un sprite en el espacio de la UI usando el tamaño natural del sprite en unidades de UI
uiSprite(sprite, x, y, w, h) Dibuja un sprite en el espacio de la UI con un tamaño explícito
uiImageButton(sprite, x, y, w, h) Dibuja un botón de imagen y devuelve uno de los constantes de estado UI_*()

Constantes de Estado de la UI

Las funciones de la UI devuelven constantes de estado para que tu script pueda saber si un widget está inactivo, sobre él, presionado o clicado. Normalmente, UI_CLICKED() es el valor que verificas para las acciones de botones.

Constante Valor Descripción
UI_IDLE() 0 El widget no está ni sobrevolado ni presionado
UI_HOVERED() 1 El mouse está sobre el widget
UI_HELD() 2 El botón del mouse está presionado sobre el widget
UI_CLICKED() 3 El widget fue clicado en este frame

Funciones de Cámara

La posición de la cámara representa el centro de la vista. El zoom mantiene una vista del mundo vertical consistente independientemente del tamaño de la pantalla.

Función Descripción
getCameraX(scene) Devuelve la posición X de la cámara (centro de la vista)
setCameraX(scene, x) Establece la posición X de la cámara
getCameraY(scene) Devuelve la posición Y de la cámara (centro de la vista)
setCameraY(scene, y) Establece la posición Y de la cámara
getCameraZoom(scene) Devuelve el nivel de zoom de la cámara
setCameraZoom(scene, zoom) Establece el zoom de la cámara. Un zoom de 1.0 muestra 720 unidades del mundo verticalmente, 3.0 muestra 240 unidades.

Comportamiento del zoom: El zoom mantiene una vista del mundo vertical consistente independientemente del tamaño de la ventana o la relación de aspecto. Pantallas más anchas muestran más horizontalmente pero la misma cantidad verticalmente.

Funciones de Entrada

Las funciones de entrada permiten que el juego reaccione al estado del teclado y del mouse. Usa Pressed para acciones de un frame, Held para movimiento continuo, y Released para acciones que ocurren cuando se suelta un botón.

Función Descripción
isKeyPressed(key) Verdadero solo en el frame en que se presionó la tecla
isKeyHeld(key) Verdadero mientras la tecla esté presionada
isKeyReleased(key) Verdadero solo en el frame en que se soltó la tecla
getMouseX() Devuelve la posición X del mouse en coordenadas de pantalla
getMouseY() Devuelve la posición Y del mouse en coordenadas de pantalla
getMouseDeltaX() Devuelve el movimiento del mouse en X en este frame
getMouseDeltaY() Devuelve el movimiento del mouse en Y en este frame
isMouseButtonPressed(button) Verdadero solo en el frame en que se presionó el botón del mouse
isMouseButtonHeld(button) Verdadero mientras el botón del mouse esté presionado
isMouseButtonReleased(button) Verdadero solo en el frame en que se soltó el botón del mouse
getFPS() Devuelve los cuadros por segundo actuales

Constantes de Botón del Mouse

Las constantes de botón del mouse se pasan a las funciones de entrada del mouse. Hacen que el código sea más fácil de leer que números en crudo.

Constante Descripción
MOUSE_LEFT() Botón izquierdo del mouse
MOUSE_RIGHT() Botón derecho del mouse
MOUSE_MIDDLE() Botón del medio del mouse

Constantes de Tecla

Las constantes de tecla se pasan a las funciones de entrada del teclado. El motor expone letras, números, teclas de función, flechas, y un pequeño conjunto de teclas especiales comunes.

Letras: KEY_A() hasta KEY_Z()

Números: KEY_0() hasta KEY_9()

Teclas de función: KEY_F1() hasta KEY_F12()

Teclas especiales: | Constante | Tecla | |----------|-----| | KEY_SPACE() | Barra espaciadora | | KEY_ENTER() | Enter/Retorno | | KEY_ESCAPE() | Escape | | KEY_TAB() | Tab | | KEY_BACKSPACE() | Retroceso | | KEY_DELETE() | Suprimir | | KEY_SHIFT() | Shift | | KEY_CTRL() | Control | | KEY_ALT() | Alt | | KEY_LEFT() | Flecha izquierda | | KEY_RIGHT() | Flecha derecha | | KEY_UP() | Flecha arriba | | KEY_DOWN() | Flecha abajo | | KEY_HOME() | Inicio | | KEY_END() | Fin |

Funciones Matemáticas

Los ayudantes matemáticos cubren cálculos comunes utilizados en movimiento, animación, aleatoriedad y límites de valores. Mantienen los scripts más cortos y fáciles de leer.

Función Descripción
abs(n) Valor absoluto
min(a, b) Devuelve el menor de dos números
max(a, b) Devuelve el mayor de dos números
clamp(value, min, max) Clampa un valor entre min y max
lerp(a, b, t) Interpola linealmente de a a b usando t
floor(n) Redondea hacia abajo al número entero más cercano
ceil(n) Redondea hacia arriba al número entero más cercano
round(n) Redondea al número entero más cercano
sign(n) Devuelve -1, 0, o 1 dependiendo del signo de la entrada
sqrt(n) Raíz cuadrada
pow(base, exponent) Eleva una base a un exponente
sin(radians) Seno de un ángulo en radianes
cos(radians) Coseno de un ángulo en radianes
tan(radians) Tangente de un ángulo en radianes
random() Devuelve un float aleatorio entre 0.0 y 1.0
randomRange(min, max) Devuelve un float aleatorio entre min y max
randomInt(min, max) Devuelve un entero aleatorio entre min y max (inclusive)
PI() Devuelve pi (3.14159...)
TAU() Devuelve tau (2 * pi = 6.28318...)
TWOPI() Devuelve 2 * pi (igual que TAU)
E() Devuelve el número de Euler e (2.71828...)
deg2rad(degrees) Convierte grados a radianes
rad2deg(radians) Convierte radianes a grados

Funciones de Utilidad

Las funciones de utilidad son ayudantes generales que no pertenecen a un tipo específico de activo. print() es especialmente útil mientras aprendes ya que muestra lo que está haciendo tu script.

Función Descripción
print(value) Imprime en la salida de depuración (mostrado en el juego)
quitGame() Sale del juego. En el editor, detiene el modo de juego. En juegos exportados, cierra la aplicación

Funciones de Cadenas

Las funciones de cadena trabajan con valores de texto. Por ahora, esta sección es intencionalmente pequeña.

Función Descripción
strlen(string) Devuelve la longitud de una cadena (número de caracteres)

Funciones de Almacenamiento

Guarda y carga datos del juego en archivos. Soporta números, cadenas, booleanos y listas (incluidas listas anidadas). No soporta valores de Sprite, Scene, Object o Audio.

Función Descripción
save(path, data) Guarda datos en un archivo en formato binario. Devuelve true en caso de éxito
save(path, data, format) Guarda datos con formato especificado: "binary" o "text"
save(path, data, format, key) Guarda datos con encriptación usando la cadena clave proporcionada
load(path) Carga datos de un archivo. Devuelve los datos o null en caso de fallo
load(path, key) Carga datos encriptados usando la cadena clave proporcionada
fileExists(path) Devuelve true si el archivo existe en la ruta dada
deleteFile(path) Elimina el archivo en la ruta dada. Devuelve true en caso de éxito
getAppDataPath() Devuelve la ruta de la carpeta AppData/Tiniest2D (crea si es necesario)
getDocumentsPath() Devuelve la ruta de la carpeta Documentos del usuario
getGamePath() Devuelve el directorio donde se encuentra el ejecutable del juego

Ejemplo: Guardando y Cargando el Progreso del Jugador

// Guarda los datos del jugador
var playerData = [100, "Jugador1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MyGame/save.dat"
if (save(savePath, playerData)) {
    print("Juego guardado!")
}

// Carga los datos del jugador
if (fileExists(savePath)) {
    var loaded = load(savePath)
    if (loaded != null) {
        var health = loaded[0]
        var name = loaded[1]
        var hasKey = loaded[2]
        var inventory = loaded[3]
    }
}

// Guarda encriptada (para ocultar datos de inspección casual)
var secretData = ["secreto", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binary", "miClaveSecreta")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "miClaveSecreta")

// Formato de texto (legible para humanos, útil para depuración)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "text")

Notas:

  • El formato binario (por defecto) es compacto y más rápido
  • El formato de texto es legible para humanos, útil para depuración
  • Una clave de encriptación incorrecta devuelve null (los datos serán basura)
  • Los directorios se crean automáticamente al guardar