Créer des jeux 2D avec Tiniest2D
Référence de l'API de l'Engine
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.
Référence API
Référence API Complète
Également disponible sous une forme abrégée à l'intérieur de l'Éditeur lui-même :

Constructeurs d'Actifs
Les constructeurs créent les principaux types d'actifs utilisés par l'éditeur. Lorsque vous en assignez un à une variable, l'éditeur le reconnait et vous permet d'ouvrir l'éditeur d'actifs correspondant avec Ctrl+Click.
| Fonction | Description |
|---|---|
Sprite(width, height) |
Crée un actif sprite avec les dimensions spécifiées |
Scene() ou Scene(name) |
Crée un actif de scène |
Audio() |
Crée un actif audio de type tracker léger |
Object() ou Object(name) |
Crée un objet de jeu |
Méthodes de Liste
Créez des listes avec [] ou [value1, value2, ...]. Lisez et réécrivez des entrées avec list[index], et itérez avec for (var i = 0; i < list.length(); i = i + 1).
| Fonction | Description |
|---|---|
list.add(value) |
Ajoute une valeur à la fin de la liste |
list.length() |
Renvoie le nombre d'éléments dans la liste |
list.remove(index) |
Supprime l'élément à l'index donné |
list.clear() |
Supprime tous les éléments de la liste |
Opérateurs
Les opérateurs sont de petits symboles qui effectuent des calculs courants. L'opérateur modulo est particulièrement utile pour envelopper des minuteries, des index, des étapes d'animation ou des motifs répétitifs.
| Opérateur | Description |
|---|---|
% |
Modulo. Renvoie le reste après la division |
Propriétés des Objets
Les objets sont les éléments que votre script déplace et modifie généralement pendant le jeu. Ces fonctions lisent ou mettent à jour la position, le sprite, le comportement de collision, la couche et la teinte visuelle d'un objet.
| Fonction | Description |
|---|---|
getX(obj) |
Renvoie la position X de l'objet |
setX(obj, x) |
Définit la position X de l'objet |
getY(obj) |
Renvoie la position Y de l'objet |
setY(obj, y) |
Définit la position Y de l'objet |
getVelocityX(obj) |
Renvoie la vitesse X de l'objet |
setVelocityX(obj, vx) |
Définit la vitesse X de l'objet |
getVelocityY(obj) |
Renvoie la vitesse Y de l'objet |
setVelocityY(obj, vy) |
Définit la vitesse Y de l'objet |
getName(obj) |
Renvoie le nom de l'objet |
setName(obj, name) |
Définit le nom de l'objet |
getSprite(obj) |
Renvoie le sprite de l'objet |
setSprite(obj, sprite) |
Attribue un sprite à l'objet (réinitialise l'animation au cadre 0) |
getLayer(obj) |
Renvoie la couche de dessin de l'objet |
setLayer(obj, layer) |
Définit la couche de dessin de l'objet (plus élevé = dessiné plus tard) |
getTint(obj) |
Renvoie la teinte sous forme de liste [r, g, b, a] |
setTint(obj, r, g, b, a) |
Définit la teinte de couleur de l'objet (0-255 chacun) |
getCollisionType(obj) |
Renvoie le numéro de type de collision |
setCollisionType(obj, type) |
Définit le type de collision |
Fonctions Sprite
Les fonctions sprite permettent de vérifier ou de modifier les données de pixels et la vitesse d'animation du sprite. La plupart des jeux dessinent des sprites dans l'éditeur, mais ces fonctions sont utiles pour des effets procéduraux, le débogage ou des changements simples en cours d'exécution.
| Fonction | Description |
|---|---|
fillSprite(sprite, r, g, b, a) |
Remplit tous les pixels de tous les cadres avec une couleur RGBA solide (0-255) |
getPixel(sprite, frame, x, y) |
Renvoie [r,g,b,a] du pixel à (x,y) dans le cadre donné, ou null s'il est hors limites |
setPixel(sprite, frame, x, y, r, g, b, a) |
Définit la couleur du pixel à (x,y) dans le cadre donné. Ne fait rien s'il est hors limites |
getAnimationFPS(sprite) |
Renvoie la vitesse d'animation du sprite en nombre d'images par seconde |
setAnimationFPS(sprite, fps) |
Définit la vitesse d'animation du sprite en nombre d'images par seconde |
Fonctions d'Animation
Les fonctions d'animation fonctionnent sur des objets qui utilisent des sprites avec plusieurs cadres. Utilisez-les lorsque vous souhaitez que le code inspecte ou force le cadre d'animation actuel.
| Fonction | Description |
|---|---|
getFrame(obj) |
Renvoie l'index du cadre d'animation actuel de l'objet |
setFrame(obj, frameIndex) |
Définit le cadre d'animation de l'objet (réinitialise le minuteur) |
getFrameCount(obj) |
Renvoie le nombre de cadres dans le sprite de l'objet |
Fonctions de Transformation (Flip/Rotation)
Les fonctions de transformation changent la façon dont le sprite d'un objet est dessiné sans modifier le sprite lui-même. Elles sont idéales pour réutiliser un sprite dans plusieurs directions.
| Fonction | Description |
|---|---|
getFlipX(obj) |
Renvoie si l'objet est retourné horizontalement |
setFlipX(obj, flip) |
Définit le retournement horizontal. true = retourné, false = normal |
getFlipY(obj) |
Renvoie si l'objet est retourné verticalement |
setFlipY(obj, flip) |
Définit le retournement vertical. true = retourné, false = normal |
getRotation(obj) |
Renvoie l'angle de rotation horaire de l'objet en degrés |
setRotation(obj, degrees) |
Définit l'angle de rotation horaire de l'objet en degrés |
move(obj, x, y) |
Déplace l'objet dans ses axes locaux rotés. X positif se déplace vers la droite, Y positif se déplace vers le bas |
getCenterOffset(obj) |
Renvoie le pivot de rotation normalisé sous forme de [x, y] |
setCenterOffset(obj, x, y) |
Définit le pivot de rotation normalisé. Les valeurs sont clampées de 0 à 1 |
getCenterOffsetX(obj) |
Renvoie le pivot normalisé X |
setCenterOffsetX(obj, x) |
Définit le pivot normalisé X |
getCenterOffsetY(obj) |
Renvoie le pivot normalisé Y |
setCenterOffsetY(obj, y) |
Définit le pivot normalisé Y |
getCenter(obj) |
Renvoie la position du monde du pivot de rotation sous forme de [x, y] |
setCenter(obj, x, y) |
Déplace l'objet afin que son pivot de rotation soit à la position mondiale (x, y) |
getCenterX(obj) |
Renvoie la position X du pivot de rotation dans le monde |
setCenterX(obj, x) |
Déplace l'objet afin que son pivot ait la position X mondiale x |
getCenterY(obj) |
Renvoie la position Y du pivot de rotation dans le monde |
setCenterY(obj, y) |
Déplace l'objet afin que son pivot ait la position Y mondiale y |
getDirectionRight(obj) |
Renvoie la direction droite de l'objet tourné sous forme de [x, y] |
getDirectionDown(obj) |
Renvoie la direction vers le bas de l'objet tourné sous forme de [x, y] |
getDirectionLeft(obj) |
Renvoie la direction gauche de l'objet tourné sous forme de [x, y] |
getDirectionUp(obj) |
Renvoie la direction vers le haut de l'objet tourné sous forme de [x, y] |
Le décalage de centre par défaut est [0.5, 0.5], ce qui tourne autour du milieu du sprite. [0, 0] tourne autour de l'emplacement en haut à gauche de l'objet, et [1, 1] tourne autour de location + (width, height).
Avertissement pour les anciens projets : À partir de Tiniest2D 1.8, getRotation() et setRotation() utilisent des angles en degrés au lieu de valeurs de quart de tour. Les colliders d'objets tournés affectent désormais la physique et les requêtes de scène.
Types de Collision
Les types de collision décident comment un objet participe aux contrôles de collision. Choisissez le type en fonction du rôle de l'objet : les murs sont généralement statiques, les joueurs sont généralement dynamiques, et les objets à ramasser sont souvent des déclencheurs.
| Constante | Valeur | Description |
|---|---|---|
COLLISION_NONE() |
0 | Aucune détection de collision |
COLLISION_STATIC() |
1 | Collision sans mouvement |
COLLISION_DYNAMIC() |
2 | Collision et déplacement |
COLLISION_TRIGGER() |
3 | Détecte la collision mais ne bloque pas |
Fonctions de Scène
Les fonctions de scène contrôlent quelle scène est active, quels objets y sont présents, et les paramètres globaux de la scène comme la couleur de fond et la gravité. Elles fournissent également des aides à la recherche pour trouver des objets à des positions ou par nom.
| Fonction | Description |
|---|---|
addObject(scene, obj) |
Ajoute un objet à une scène |
removeObject(scene, obj) |
Supprime un objet d'une scène |
setScene(scene) |
Définit la scène active |
getScene() |
Renvoie la scène active actuelle |
resetScene(scene) |
Réinitialise la scène à son état initial (tel que conçu dans l'éditeur) |
setBackgroundColor(scene, r, g, b) |
Définit la couleur de fond de la scène (RGB 0-255) |
getBackgroundColor(scene) |
Renvoie la couleur de fond sous forme de liste [r, g, b] |
getGravityX(scene) |
Renvoie le composant X de la gravité de la scène |
setGravityX(scene, gx) |
Définit le composant X de la gravité de la scène |
getGravityY(scene) |
Renvoie le composant Y de la gravité de la scène |
setGravityY(scene, gy) |
Définit le composant Y de la gravité de la scène (positif = bas) |
getObjectAt(scene, x, y) |
Renvoie le premier objet au point (x,y), ou null |
getObjectsAt(scene, x, y) |
Renvoie une liste de tous les objets au point (x,y) |
getObjectsInBox(scene, x, y, w, h) |
Renvoie tous les objets chevauchant la boîte |
getObjectByName(scene, name) |
Trouve un objet par nom, ou null s'il n'est pas trouvé |
getObjectCount(scene) |
Renvoie le nombre d'objets dans la scène |
getAllObjects(scene) |
Renvoie une liste de tous les objets dans la scène |
isObjectInScene(scene, obj) |
Renvoie vrai si l'objet est dans la scène |
getObjectsBySprite(scene, sprite) |
Renvoie tous les objets utilisant le sprite donné |
getObjectsByCollisionType(scene, type) |
Renvoie tous les objets avec le type de collision donné |
Lecture Audio
Les fonctions de lecture audio démarrent et arrêtent les actifs audio à partir du script. playAudio() renvoie une poignée afin que vous puissiez arrêter ou vérifier plus tard cette instance de lecture spécifique.
| Fonction | Description |
|---|---|
playAudio(audio) |
Démarre un actif audio et renvoie un identifiant de poignée de lecture |
stopAudio(handle) |
Arrête une poignée de lecture renvoyée par playAudio() |
isAudioPlaying(handle) |
Renvoie vrai tant que la poignée de lecture est encore active |
Fonctions d'Écran
Les fonctions d'écran aident lorsque vous devez connaître la taille de la fenêtre ou convertir entre les pixels d'écran et les positions dans le monde. Cela est utile pour le ciblage de la souris, la détection de clics et l'interface utilisateur consciente de la caméra.
| Fonction | Description |
|---|---|
getScreenWidth() |
Renvoie la largeur de l'écran/fenêtre en pixels |
getScreenHeight() |
Renvoie la hauteur de l'écran/fenêtre en pixels |
screenToWorld(screenX, screenY) |
Convertit les coordonnées de pixels de l'écran en coordonnées du monde. Renvoie [worldX, worldY] |
worldToScreen(worldX, worldY) |
Convertit les coordonnées du monde en coordonnées de pixels de l'écran. Renvoie [screenX, screenY] |
Mode Fenêtre
Contrôlez le mode fenêtre pour les jeux exportés. Ces fonctions n'ont aucun effet lors de la lecture dans l'éditeur (l'éditeur a une autorité supérieure sur l'état de la fenêtre).
| Constante | Valeur | Description |
|---|---|---|
WINDOW_WINDOWED() |
0 | Mode fenêtre normal |
WINDOW_MAXIMIZED() |
1 | Fenêtre maximisée (par défaut) |
WINDOW_FULLSCREEN() |
2 | Plein écran sans bord |
| Fonction | Description |
|---|---|
getWindowMode() |
Renvoie la constante du mode fenêtre actuel |
setWindowMode(mode) |
Définit le mode de fenêtre. Fonctionne uniquement dans les jeux exportés |
Exemple :
func start() {
// Définir le mode de fenêtre (WINDOW_MAXIMIZED est le par défaut pour les jeux exportés)
setWindowMode(WINDOW_MAXIMIZED())
}
Remarque : Si setWindowMode() n'est jamais appelé dans un jeu exporté, le par défaut est WINDOW_MAXIMIZED.
Fonctions UI
L'UI utilise une résolution d'espace écran virtuel. L'espace UI par défaut est 100 x 100.
La taille de la police peut être augmentée pour les widgets de texte suivants avec uiPushFontSize(size) et restaurée avec uiPopFontSize(). Les couleurs de police peuvent être empilées avec uiPushFontColor(r, g, b[, a]), et les remplissages d'éléments UI peuvent être empilés avec uiPushElementColor(r, g, b[, a]). Comme le reste de l'UI en mode immédiat, ces remplacements s'appliquent pendant la construction de l'UI du cadre actuel. Si la taille poussée est 0 ou moins, le moteur utilise une taille automatique.
| Fonction | Description |
|---|---|
getUIResolutionX() |
Renvoie la largeur de l'UI virtuelle actuelle |
setUIResolutionX(width) |
Définit la largeur de l’UI virtuelle utilisée pour les appels UI suivants |
getUIResolutionY() |
Renvoie la hauteur de l'UI virtuelle actuelle |
setUIResolutionY(height) |
Définit la hauteur de l’UI virtuelle utilisée pour les appels UI suivants |
uiPushFontSize(size) |
Pousse une échelle de taille de police pour le texte UI suivant. Les valeurs <= 0 utilisent une taille automatique |
uiPopFontSize() |
Pop la dernière surcouche de taille de police UI |
uiPushFontColor(r, g, b) ou uiPushFontColor(r, g, b, a) |
Pousse une surcouche de couleur de police pour le texte UI suivant |
uiPopFontColor() |
Pop la dernière surcouche de couleur de police UI |
uiPushElementColor(r, g, b) ou uiPushElementColor(r, g, b, a) |
Pousse une surcouche de couleur de remplissage pour les boîtes, boutons, bascules, curseurs et boutons d'image |
uiPopElementColor() |
Pop la dernière surcouche de couleur d'élément UI |
uiLabel(text, x, y) |
Dessine du texte en espace écran aux coordonnées UI virtuelles |
uiBox(x, y, w, h) |
Dessine une boîte de panneau simple |
uiButton(text, x, y, w, h) |
Dessine un bouton et renvoie l'une des constantes d'état UI_*() |
uiToggle(text, value, x, y, w, h) |
Dessine une bascule et renvoie la valeur booléenne mise à jour |
uiSlider(text, value, min, max, x, y, w, h) |
Dessine un curseur et renvoie la valeur numérique mise à jour |
uiSprite(sprite, x, y) |
Dessine un sprite dans l'espace UI en utilisant la taille naturelle du sprite en unités UI |
uiSprite(sprite, x, y, w, h) |
Dessine un sprite dans l'espace UI avec une taille explicite |
uiImageButton(sprite, x, y, w, h) |
Dessine un bouton sprite et renvoie l'une des constantes d'état UI_*() |
Constantes d'État UI
Les fonctions UI renvoient des constantes d'état pour que votre script puisse savoir si un widget est inactif, survolé, maintenu ou cliqué. Habituellement, UI_CLICKED() est la valeur que vous vérifiez pour les actions de bouton.
| Constante | Valeur | Description |
|---|---|---|
UI_IDLE() |
0 | Le widget n'est ni survolé ni pressé |
UI_HOVERED() |
1 | La souris survole le widget |
UI_HELD() |
2 | Le bouton de la souris est enfoncé sur le widget |
UI_CLICKED() |
3 | Le widget a été cliqué lors de ce cadre |
Fonctions de Caméra
La position de la caméra représente le centre de la vue. Le zoom maintient une vue verticale cohérente quel que soit la taille de l'écran.
| Fonction | Description |
|---|---|
getCameraX(scene) |
Renvoie la position X de la caméra (centre de la vue) |
setCameraX(scene, x) |
Définit la position X de la caméra |
getCameraY(scene) |
Renvoie la position Y de la caméra (centre de la vue) |
setCameraY(scene, y) |
Définit la position Y de la caméra |
getCameraZoom(scene) |
Renvoie le niveau de zoom de la caméra |
setCameraZoom(scene, zoom) |
Définit le zoom de la caméra. Un zoom de 1.0 montre 720 unités du monde verticalement, 3.0 montre 240 unités. |
Comportement du zoom : Le zoom maintient une vue verticale cohérente quel que soit la taille de la fenêtre ou le ratio d'aspect. Les écrans plus larges montrent plus horizontalement mais la même quantité verticalement.
Fonctions d'Entrée
Les fonctions d'entrée permettent au jeu de réagir à l'état du clavier et de la souris. Utilisez Pressed pour des actions d'une seule image, Held pour un mouvement continu, et Released pour des actions qui se produisent lorsque un bouton est relâché.
| Fonction | Description |
|---|---|
isKeyPressed(key) |
Vrai uniquement sur l'image où la touche a été pressée |
isKeyHeld(key) |
Vrai tant que la touche est enfoncée |
isKeyReleased(key) |
Vrai uniquement sur l'image où la touche a été relâchée |
getMouseX() |
Renvoie la position X de la souris en coordonnées d'écran |
getMouseY() |
Renvoie la position Y de la souris en coordonnées d'écran |
getMouseDeltaX() |
Renvoie le mouvement X de la souris ce cadre |
getMouseDeltaY() |
Renvoie le mouvement Y de la souris ce cadre |
isMouseButtonPressed(button) |
Vrai uniquement sur l'image où le bouton de la souris a été pressé |
isMouseButtonHeld(button) |
Vrai tant que le bouton de la souris est enfoncé |
isMouseButtonReleased(button) |
Vrai uniquement sur l'image où le bouton de la souris a été relâché |
getFPS() |
Renvoie le nombre actuel d'images par seconde |
Constantes des Boutons de la Souris
Les constantes des boutons de la souris sont passées aux fonctions d'entrée de la souris. Elles rendent le code plus lisible que des nombres bruts.
| Constante | Description |
|---|---|
MOUSE_LEFT() |
Bouton de la souris gauche |
MOUSE_RIGHT() |
Bouton de la souris droit |
MOUSE_MIDDLE() |
Bouton de la souris du milieu |
Constantes des Touches
Les constantes des touches sont passées aux fonctions d'entrée du clavier. Le moteur expose les lettres, les chiffres, les touches de fonction, les flèches et un petit ensemble de touches spéciales courantes.
Lettres : KEY_A() à KEY_Z()
Chiffres : KEY_0() à KEY_9()
Touches de fonction : KEY_F1() à KEY_F12()
Touches spéciales :
| Constante | Touche |
|----------|-----|
| KEY_SPACE() | Espace |
| KEY_ENTER() | Entrée/Retour |
| KEY_ESCAPE() | Échap |
| KEY_TAB() | Tabulation |
| KEY_BACKSPACE() | Retour arrière |
| KEY_DELETE() | Supprimer |
| KEY_SHIFT() | Maj |
| KEY_CTRL() | Contrôle |
| KEY_ALT() | Alt |
| KEY_LEFT() | Flèche gauche |
| KEY_RIGHT() | Flèche droite |
| KEY_UP() | Flèche du haut |
| KEY_DOWN() | Flèche du bas |
| KEY_HOME() | Début |
| KEY_END() | Fin |
Fonctions Mathématiques
Les helpers maths couvrent des calculs courants utilisés dans le mouvement, l'animation, l'aléatoire, et les limites de valeur. Ils gardent les scripts plus courts et plus lisibles.
| Fonction | Description |
|---|---|
abs(n) |
Valeur absolue |
min(a, b) |
Renvoie le plus petit des deux nombres |
max(a, b) |
Renvoie le plus grand des deux nombres |
clamp(value, min, max) |
Restrict un valeur entre min et max |
lerp(a, b, t) |
Interpole linéairement de a à b en utilisant t |
floor(n) |
Arrondit vers le bas à l'entier le plus proche |
ceil(n) |
Arrondit vers le haut à l'entier le plus proche |
round(n) |
Arrondit à l'entier le plus proche |
sign(n) |
Renvoie -1, 0 ou 1 selon le signe de l'entrée |
sqrt(n) |
Racine carrée |
pow(base, exponent) |
Élève une base à une puissance |
sin(radians) |
Sinus d'un angle en radians |
cos(radians) |
Cosinus d'un angle en radians |
tan(radians) |
Tangente d'un angle en radians |
random() |
Renvoie un float aléatoire entre 0.0 et 1.0 |
randomRange(min, max) |
Renvoie un float aléatoire entre min et max |
randomInt(min, max) |
Renvoie un entier aléatoire entre min et max (inclusif) |
PI() |
Renvoie pi (3.14159...) |
TAU() |
Renvoie tau (2 * pi = 6.28318...) |
TWOPI() |
Renvoie 2 * pi (même que TAU) |
E() |
Renvoie le nombre d'Euler e (2.71828...) |
deg2rad(degrees) |
Convertit des degrés en radians |
rad2deg(radians) |
Convertit des radians en degrés |
Fonctions Utilitaires
Les fonctions utilitaires sont des aides générales qui n'appartiennent pas à un type d'actif spécifique. print() est particulièrement utile lors de l'apprentissage car il montre ce que votre script est en train de faire.
| Fonction | Description |
|---|---|
print(value) |
Affiche dans la sortie de débogage (affichée dans le jeu) |
quitGame() |
Quitte le jeu. Dans l'éditeur, arrête le mode de jeu. Dans les jeux exportés, ferme l'application |
Fonctions de Chaîne
Les fonctions de chaîne travaillent avec des valeurs textuelles. Pour l'instant, cette section est intentionnellement petite.
| Fonction | Description |
|---|---|
strlen(string) |
Renvoie la longueur d'une chaîne (nombre de caractères) |
Fonctions de Stockage
Enregistrez et chargez les données de jeu dans des fichiers. Prend en charge les nombres, les chaînes, les booléens et les listes (y compris les listes imbriquées). NE prend PAS en charge les valeurs Sprite, Scene, Object ou Audio.
| Function | Description |
|---|---|
save(path, data) |
Sauvegarde les données dans un fichier au format binaire. Retourne true en cas de succès |
save(path, data, format) |
Sauvegarde les données avec le format spécifié : "binary" ou "text" |
save(path, data, format, key) |
Sauvegarde les données avec cryptage en utilisant la clé fournie |
load(path) |
Charge les données depuis un fichier. Retourne les données ou null en cas d'échec |
load(path, key) |
Charge des données chiffrées en utilisant la clé fournie |
fileExists(path) |
Retourne true si le fichier existe au chemin donné |
deleteFile(path) |
Supprime le fichier au chemin donné. Retourne true en cas de succès |
getAppDataPath() |
Retourne le chemin du dossier AppData/Tiniest2D (crée si nécessaire) |
getDocumentsPath() |
Retourne le chemin du dossier Documents de l'utilisateur |
getGamePath() |
Retourne le répertoire où se trouve l'exécutable du jeu |
Exemple : Sauvegarde et Chargement de la Progression du Joueur
// Sauvegarder les données du joueur
var playerData = [100, "Player1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MyGame/save.dat"
if (save(savePath, playerData)) {
print("Jeu sauvegardé !")
}
// Charger les données du joueur
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]
}
}
// Sauvegarde chiffrée (pour cacher les données d'une inspection décontractée)
var secretData = ["secret", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binary", "mySecretKey")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "mySecretKey")
// Format texte (lisible par l'humain, utile pour le débogage)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "text")
Remarques :
- Le format binaire (par défaut) est compact et plus rapide
- Le format texte est lisible par l'humain, utile pour le débogage
- Une mauvaise clé de cryptage retourne
null(les données seront indéchiffrables) - Les répertoires sont créés automatiquement lors de la sauvegarde