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 mismo Editor: 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 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], e 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() Retorna 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 repetitivos.

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

Propiedades de Objeto

Los objetos son las cosas que tu script normalmente 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) Retorna la posición X del objeto
setX(obj, x) Establece la posición X del objeto
getY(obj) Retorna la posición Y del objeto
setY(obj, y) Establece la posición Y del objeto
getVelocityX(obj) Retorna la velocidad X del objeto
setVelocityX(obj, vx) Establece la velocidad X del objeto
getVelocityY(obj) Retorna la velocidad Y del objeto
setVelocityY(obj, vy) Establece la velocidad Y del objeto
getName(obj) Retorna el nombre del objeto
setName(obj, name) Establece el nombre del objeto
getSprite(obj) Retorna el sprite del objeto
setSprite(obj, sprite) Asigna un sprite al objeto (restablece la animación al fotograma 0)
getLayer(obj) Retorna 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) Retorna el tinte como lista [r, g, b, a]
setTint(obj, r, g, b, a) Establece el tinte de color del objeto (0-255 cada uno)
getCollisionType(obj) Retorna el número de 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 procedimentales, depuración o cambios simples en tiempo de ejecución.

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

Funciones de Animación

Las funciones de animación trabajan en objetos que usan sprites con múltiples fotogramas. Úsalas cuando quieras que el código inspeccione o fuerce el fotograma de animación actual.

Función Descripción
getFrame(obj) Retorna el índice del fotograma actual de la animación del objeto
setFrame(obj, frameIndex) Establece el fotograma de animación del objeto (restablece el temporizador)
getFrameCount(obj) Retorna el número de fotogramas en el sprite del objeto

Funciones de Transformación (Flip/Rotación)

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

Función Descripción
getFlipX(obj) Retorna si el objeto está volteado horizontalmente
setFlipX(obj, flip) Establece el volteo horizontal. true = volteado, false = normal
getFlipY(obj) Retorna si el objeto está volteado verticalmente
setFlipY(obj, flip) Establece el volteo vertical. true = volteado, false = normal
getRotation(obj) Retorna el ángulo de rotación horario del objeto en grados
setRotation(obj, degrees) Establece el ángulo de rotación horario del objeto en grados
move(obj, x, y) Mueve el objeto en sus ejes rotados locales. X positivo se mueve a la derecha, Y positivo se mueve hacia abajo
getCenterOffset(obj) Retorna el pivote de rotación normalizado como [x, y]
setCenterOffset(obj, x, y) Establece el pivote de rotación normalizado. Los valores se limitan de 0 a 1
getCenterOffsetX(obj) Retorna el pivote normalizado X
setCenterOffsetX(obj, x) Establece el pivote normalizado X
getCenterOffsetY(obj) Retorna el pivote normalizado Y
setCenterOffsetY(obj, y) Establece el pivote normalizado Y
getCenter(obj) Retorna la posición mundial del pivote de rotación como [x, y]
setCenter(obj, x, y) Mueve el objeto para que su pivote de rotación esté en la posición mundial (x, y)
getCenterX(obj) Retorna la posición mundial X del pivote de rotación
setCenterX(obj, x) Mueve el objeto para que su pivote tenga la posición mundial X x
getCenterY(obj) Retorna la posición mundial Y del pivote de rotación
setCenterY(obj, y) Mueve el objeto para que su pivote tenga la posición mundial Y y
getDirectionRight(obj) Retorna la dirección derecha rotada del objeto como [x, y]
getDirectionDown(obj) Retorna la dirección hacia abajo rotada del objeto como [x, y]
getDirectionLeft(obj) Retorna la dirección izquierda rotada del objeto como [x, y]
getDirectionUp(obj) Retorna la dirección hacia arriba rotada del objeto como [x, y]

El desplazamiento del centro predeterminado es [0.5, 0.5], que rota alrededor del medio del sprite. [0, 0] rota alrededor de la ubicación superior izquierda del objeto, y [1, 1] rota alrededor de location + (width, height).

Advertencia para proyectos más antiguos: A partir de Tiniest2D 1.8, getRotation() y setRotation() utilizan ángulos en grados en lugar de valores de un cuarto de vuelta. Los colliders de objetos rotados ahora afectan la física y las consultas de escena.

Tipos de Colisión

Los tipos de colisión deciden cómo un objeto participa en las verificaciones de colisión. Elige el tipo basado en el rol del objeto: las paredes son generalmente estáticas, los jugadores son generalmente dinámicos, y los pickups a menudo son 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 ajustes generales de la escena como el color de fondo y la gravedad. También proporcionan ayudantes 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() Retorna la escena activa actual
resetScene(scene) Restablece la escena a su estado inicial (como se diseñó en el editor)
setBackgroundColor(scene, r, g, b) Establece el color de fondo de la escena (RGB 0-255)
getBackgroundColor(scene) Retorna el color de fondo como lista [r, g, b]
getGravityX(scene) Retorna el componente de gravedad X de la escena
setGravityX(scene, gx) Establece el componente de gravedad X de la escena
getGravityY(scene) Retorna 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) Retorna el primer objeto en el punto (x,y), o null
getObjectsAt(scene, x, y) Retorna una lista de todos los objetos en el punto (x,y)
getObjectsInBox(scene, x, y, w, h) Retorna todos los objetos que superponen la caja
getObjectByName(scene, name) Encuentra un objeto por nombre, o null si no fue encontrado
getObjectCount(scene) Retorna el número de objetos en la escena
getAllObjects(scene) Retorna una lista de todos los objetos en la escena
isObjectInScene(scene, obj) Retorna verdadero si el objeto está en la escena
getObjectsBySprite(scene, sprite) Retorna todos los objetos que usan el sprite dado
getObjectsByCollisionType(scene, type) Retorna 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() retorna un identificador de manejo 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 retorna un identificador de manejo de reproducción
stopAudio(handle) Detiene un identificador de reproducción devuelto por playAudio()
isAudioPlaying(handle) Retorna verdadero mientras el identificador de reproducción siga 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 del mundo. Esto es útil para apuntar con el mouse, detección de 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 coordenadas del mundo a coordenadas de píxeles de pantalla. Devuelve [screenX, screenY]

Modo de Ventana

Controla el modo de ventana para los 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 normal
WINDOW_MAXIMIZED() 1 Ventana maximizada (predeterminado)
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() {
    // Establecer 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 restaurarse con uiPopFontSize(). Los colores de las fuentes se pueden apilar con uiPushFontColor(r, g, b[, a]), y los rellenos de elementos de UI se pueden apilar con uiPushElementColor(r, g, b[, a]). Al igual que el resto de la UI en modo inmediato, estas configuraciones se aplican mientras se construye la UI del marco actual. Si el tamaño empujado es 0 o menos, el motor utiliza el tamaño automático.

Función Descripción
getUIResolutionX() Devuelve el ancho virtual de UI actual
setUIResolutionX(width) Establece el ancho virtual de UI utilizado para las siguientes llamadas de UI
getUIResolutionY() Devuelve la altura virtual de UI actual
setUIResolutionY(height) Establece la altura virtual de UI utilizada para las siguientes llamadas de UI
uiPushFontSize(size) Aumenta una escala de tamaño de fuente para el siguiente texto de UI. Valores <= 0 utilizan el tamaño automático
uiPopFontSize() Restaura la configuración más reciente de tamaño de fuente de UI
uiPushFontColor(r, g, b) o uiPushFontColor(r, g, b, a) Aplica un color de fuente para el siguiente texto de UI
uiPopFontColor() Restaura el color de fuente de UI más reciente
uiPushElementColor(r, g, b) o uiPushElementColor(r, g, b, a) Aplica un color de relleno para cuadros, botones, conmutadores, deslizadores y botones de imagen
uiPopElementColor() Restaura el color de elemento de UI más reciente
uiLabel(text, x, y) Dibuja texto en el espacio de pantalla en coordenadas virtuales de UI
uiBox(x, y, w, h) Dibuja un cuadro 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 conmutador 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 UI utilizando el tamaño natural del sprite en unidades de UI
uiSprite(sprite, x, y, w, h) Dibuja un sprite en el espacio de UI con un tamaño explícito
uiImageButton(sprite, x, y, w, h) Dibuja un botón de sprite y devuelve uno de los constantes de estado UI_*()

Constantes de Estado de UI

Las funciones de UI devuelven constantes de estado para que tu script pueda saber si un widget está inactivo, sobrevolado, sostenido o clicado. Por lo general, UI_CLICKED() es el valor que compruebas para acciones de botón.

Constante Valor Descripción
UI_IDLE() 0 El widget no está 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 marco

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 sin importar el 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 sin importar el tamaño de la ventana o la relación de aspecto. Las 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 solo fotograma, 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 fotograma en que se presionó la tecla
isKeyHeld(key) Verdadero mientras se mantiene presionada la tecla
isKeyReleased(key) Verdadero solo en el fotograma 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 X del mouse en este marco
getMouseDeltaY() Devuelve el movimiento Y del mouse en este marco
isMouseButtonPressed(button) Verdadero solo en el fotograma en que se presionó el botón del mouse
isMouseButtonHeld(button) Verdadero mientras se mantiene presionado el botón del mouse
isMouseButtonReleased(button) Verdadero solo en el fotograma 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 los números en bruto.

Constante Descripción
MOUSE_LEFT() Botón izquierdo del mouse
MOUSE_RIGHT() Botón derecho del mouse
MOUSE_MIDDLE() Botón 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() a KEY_Z()

Números: KEY_0() a KEY_9()

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

Teclas especiales: | Constante | Tecla | |----------|-----| | KEY_SPACE() | Barra espaciadora | | KEY_ENTER() | Enter/Return | | 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 hacia arriba | | KEY_DOWN() | Flecha hacia 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 más pequeño de dos números
max(a, b) Devuelve el más grande de dos números
clamp(value, min, max) Limita un valor entre min y max
lerp(a, b, t) Interpola linealmente de a a b usando t
floor(n) Redondea hacia abajo al entero más cercano
ceil(n) Redondea hacia arriba al entero más cercano
round(n) Redondea al 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 (lo mismo 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 ayudas generales que no pertenecen a un tipo de activo específico. print() es especialmente útil mientras aprendes porque muestra lo que tu script está haciendo.

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 Cadena

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 (incluyendo listas anidadas). NO soporta valores de Sprite, Escena, Objeto 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 el formato especificado: "binary" o "text"
save(path, data, format, key) Guarda datos con cifrado usando la cadena de clave proporcionada
load(path) Carga datos de un archivo. Devuelve los datos o null en caso de falla
load(path, key) Carga datos cifrados usando la cadena de clave proporcionada
fileExists(path) Devuelve true si el archivo existe en el camino dado
deleteFile(path) Elimina el archivo en el camino dado. 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

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

// Cargar 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]
    }
}

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

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

Notas:

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