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 Editor mismo:

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