Crea Juegos 2D con Tiniest2D
Referencia de la API del motor
Lesson 8 of 11 • 10 XP
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:

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