Créer des jeux 2D avec Tiniest2D
Référence de l'API du moteur
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 forme abrégée dans 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 reconnaît et vous permet d'ouvrir l'éditeur d'actif 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 scène |
Audio() |
Crée un actif audio de type tracker minuscule |
Object() ou Object(name) |
Crée un objet de jeu |
Méthodes de Liste
Créez des listes avec [] ou [value1, value2, ...]. Lisez et é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 temporisateurs, des index, des étapes d'animation ou des motifs répétitifs.
| Opérateur | Description |
|---|---|
% |
Modulo. Renvoie le reste après division |
Propriétés d'Objet
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) |
Assigne 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 au code d'inspecter ou de modifier les données de pixels du sprite et la vitesse d'animation. La plupart des jeux dessinent des sprites dans l'éditeur, mais ces fonctions sont utiles pour des effets procéduraux, du débogage ou des modifications simples à l'exécution.
| Fonction | Description |
|---|---|
fillSprite(sprite, r, g, b, a) |
Remplit tous les pixels de tous les cadres avec une couleur RGBA uniforme (0-255) |
getPixel(sprite, frame, x, y) |
Renvoie [r,g,b,a] du pixel à (x,y) dans le cadre donné, ou null si 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 si hors limites |
getAnimationFPS(sprite) |
Renvoie la vitesse d'animation du sprite en images par seconde |
setAnimationFPS(sprite, fps) |
Définit la vitesse d'animation du sprite en images par seconde |
Fonctions d'Animation
Les fonctions d'animation travaillent 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 temporisateur) |
getFrameCount(obj) |
Renvoie le nombre de cadres dans le sprite de l'objet |
Fonctions de Transformation (Retour/Rotation)
Les fonctions de transformation changent comment le sprite d'un objet est dessiné sans modifier le sprite lui-même. Elles sont bonnes 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 la rotation de 90 degrés de l'objet (0-3) |
setRotation(obj, rot) |
Définit la rotation de 90 degrés : 0=0, 1=90, 2=180, 3=270 degrés dans le sens des aiguilles d'une montre |
Remarque : Ces transformations ne sont appliquées qu'au moment du rendu. Elles n'affectent pas les boîtes de collision ou les données de pixels réelles du sprite.
Types de Collision
Les types de collision décident comment un objet participe aux vérifications 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 | Pas de détection de collision |
COLLISION_STATIC() |
1 | Collision mais ne bouge pas |
COLLISION_DYNAMIC() |
2 | Collision et est poussé |
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 de scène comme la couleur d'arrière-plan 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 d'arrière-plan de la scène (RGB 0-255) |
getBackgroundColor(scene) |
Renvoie la couleur d'arrière-plan sous forme de liste [r, g, b] |
getGravityX(scene) |
Renvoie la composante X de la gravité de la scène |
setGravityX(scene, gx) |
Définit la composante X de la gravité de la scène |
getGravityY(scene) |
Renvoie la composante Y de la gravité de la scène |
setGravityY(scene, gy) |
Définit la composante 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 son 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 depuis le script. playAudio() renvoie un identifiant de gestionnaire 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 gestionnaire de lecture |
stopAudio(handle) |
Arrête un gestionnaire de lecture renvoyé par playAudio() |
isAudioPlaying(handle) |
Renvoie vrai tant que le gestionnaire de lecture est toujours actif |
Fonctions d'Écran
Les fonctions d'écran aident lorsque vous avez besoin de connaître la taille de la fenêtre ou de convertir entre les pixels de l'écran et les positions du monde. Cela est utile pour le ciblage de la souris, la détection des clics et l'interface utilisateur consciente de la caméra.
| Fonction | Description |
|---|---|
getScreenWidth() |
Renvoie la largeur de l'écran/de la fenêtre en pixels |
getScreenHeight() |
Renvoie la hauteur de l'écran/de la fenêtre en pixels |
screenToWorld(screenX, screenY) |
Convertit les coordonnées en pixels de l'écran en coordonnées mondiales. Renvoie [worldX, worldY] |
worldToScreen(worldX, worldY) |
Convertit les coordonnées mondiales en coordonnées en pixels de l'écran. Renvoie [screenX, screenY] |
Mode Fenêtre
Contrôlez le mode de fenêtre pour les jeux exportés. Ces fonctions n'ont aucun effet lors de la lecture dans l'éditeur (l'éditeur a plus d'autorité sur l'état de la fenêtre).
| Constante | Valeur | Description |
|---|---|---|
WINDOW_WINDOWED() |
0 | Mode fenêtré normal |
WINDOW_MAXIMIZED() |
1 | Fenêtre maximisée (par défaut) |
WINDOW_FULLSCREEN() |
2 | Plein écran sans bordure |
| Fonction | Description |
|---|---|
getWindowMode() |
Renvoie la constante du mode de fenêtre actuel |
setWindowMode(mode) |
Définit le mode de fenêtre. Fonctionne uniquement dans les jeux exportés |
Exemple :
func start() {
// Définissez le mode de fenêtre (WINDOW_MAXIMIZED est le défaut pour les jeux exportés)
setWindowMode(WINDOW_MAXIMIZED())
}
Remarque : Si setWindowMode() n'est jamais appelé dans un jeu exporté, la valeur par défaut est WINDOW_MAXIMIZED.
Fonctions UI
L'interface utilisateur utilise une résolution de l'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 des éléments UI peuvent être empilés avec uiPushElementColor(r, g, b[, a]). Comme le reste de l'interface utilisateur en mode immédiat, ces modifications s'appliquent lors de la construction de l'interface utilisateur du cadre actuel. Si la taille empilée est 0 ou inférieure, le moteur utilise un dimensionnement automatique.
| Fonction | Description |
|---|---|
getUIResolutionX() |
Renvoie la largeur virtuelle actuelle de l'UI |
setUIResolutionX(width) |
Définit la largeur virtuelle de l'UI utilisée pour les appels suivants de l'UI |
getUIResolutionY() |
Renvoie la hauteur virtuelle actuelle de l'UI |
setUIResolutionY(height) |
Définit la hauteur virtuelle de l'UI utilisée pour les appels suivants de l'UI |
uiPushFontSize(size) |
Pousse une échelle de taille de police pour le texte de l'UI suivant. Les valeurs <= 0 utilisent une taille automatique |
uiPopFontSize() |
Récupère la dernière redéfinition de taille de police de l'UI |
uiPushFontColor(r, g, b) ou uiPushFontColor(r, g, b, a) |
Pousse une redéfinition de couleur de police pour le texte de l'UI suivant |
uiPopFontColor() |
Récupère la dernière redéfinition de couleur de police de l'UI |
uiPushElementColor(r, g, b) ou uiPushElementColor(r, g, b, a) |
Pousse une redéfinition de couleur de remplissage pour les boîtes, les boutons, les bascules, les curseurs et les boutons d'image |
uiPopElementColor() |
Récupère la dernière redéfinition de couleur d'élément de l'UI |
uiLabel(text, x, y) |
Dessine du texte en espace d'écran aux coordonnées virtuelles de l'UI |
uiBox(x, y, w, h) |
Dessine une boîte de panneau simple |
uiButton(text, x, y, w, h) |
Dessine un bouton et renvoie l'un des états constants 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 de l'UI en utilisant la taille naturelle du sprite en unités d'UI |
uiSprite(sprite, x, y, w, h) |
Dessine un sprite dans l'espace de l'UI avec une taille explicite |
uiImageButton(sprite, x, y, w, h) |
Dessine un bouton sprite et renvoie l'un des états constants 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é. En général, 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 est sur le widget |
UI_HELD() |
2 | Le bouton de la souris est enfoncé sur le widget |
UI_CLICKED() |
3 | Le widget a été cliqué dans ce cadre |
Fonctions de caméra
La position de la caméra représente le centre de la vue. Le zoom maintient une vue du monde vertical cohérente indépendamment de 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 du monde vertical cohérente indépendamment de la taille de la fenêtre ou du rapport 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 en une seule image, Held pour un mouvement continu, et Released pour des actions qui se produisent lorsqu'un bouton est relâché.
| Fonction | Description |
|---|---|
isKeyPressed(key) |
Vrai uniquement pendant le cadre où la touche a été pressée |
isKeyHeld(key) |
Vrai tant que la touche est maintenue enfoncée |
isKeyReleased(key) |
Vrai uniquement pendant le cadre 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 de la souris en X ce cadre |
getMouseDeltaY() |
Renvoie le mouvement de la souris en Y ce cadre |
isMouseButtonPressed(button) |
Vrai uniquement pendant le cadre où le bouton de la souris a été pressé |
isMouseButtonHeld(button) |
Vrai tant que le bouton de la souris est maintenu enfoncé |
isMouseButtonReleased(button) |
Vrai uniquement pendant le cadre où le bouton de la souris a été relâché |
getFPS() |
Renvoie le nombre de frames par seconde actuel |
Constantes de bouton de souris
Les constantes de bouton de souris sont passées dans les fonctions d'entrée de la souris. Elles rendent le code plus facile à lire que des nombres bruts.
| Constante | Description |
|---|---|
MOUSE_LEFT() |
Bouton gauche de la souris |
MOUSE_RIGHT() |
Bouton droit de la souris |
MOUSE_MIDDLE() |
Bouton central de la souris |
Constantes de touche
Les constantes de touche sont passées dans les fonctions d'entrée du clavier. Le moteur expose des lettres, des chiffres, des touches de fonction, des 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() | Barre d'espace |
| KEY_ENTER() | Entrée/Retour |
| KEY_ESCAPE() | Échapper |
| KEY_TAB() | Tabuler |
| 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 haut |
| KEY_DOWN() | Flèche bas |
| KEY_HOME() | Accueil |
| KEY_END() | Fin |
Fonctions mathématiques
Les aides mathématiques couvrent les calculs courants utilisés dans le mouvement, l'animation, le hasard et les limites de valeur. Elles maintiennent les scripts plus courts et plus faciles à lire.
| 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) |
Limite une valeur entre min et max |
lerp(a, b, t) |
Interpole linéairement de a à b en utilisant t |
floor(n) |
Arrondit vers le bas au nombre entier le plus proche |
ceil(n) |
Arrondit vers le haut au nombre entier le plus proche |
round(n) |
Arrondit au nombre entier le plus proche |
sign(n) |
Renvoie -1, 0 ou 1 en fonction du 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 flottant aléatoire entre 0.0 et 1.0 |
randomRange(min, max) |
Renvoie un flottant 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 (identique à 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 ne relèvent pas d'un type d'actif spécifique. print() est particulièrement utile pendant l'apprentissage car il montre ce que votre script fait.
| Fonction | Description |
|---|---|
print(value) |
Imprime 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 fonctionnent 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 du 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.
| Fonction | Description |
|---|---|
save(path, data) |
Enregistre les données dans un fichier au format binaire. Renvoie true en cas de succès |
save(path, data, format) |
Enregistre les données avec le format spécifié : "binaire" ou "texte" |
save(path, data, format, key) |
Enregistre les données avec chiffrement en utilisant la clé de chaîne fournie |
load(path) |
Charge des données à partir d'un fichier. Renvoie les données ou null en cas d'échec |
load(path, key) |
Charge des données chiffrées en utilisant la clé de chaîne fournie |
fileExists(path) |
Renvoie true si le fichier existe au chemin donné |
deleteFile(path) |
Supprime le fichier au chemin donné. Renvoie true en cas de succès |
getAppDataPath() |
Renvoie le chemin du dossier AppData/Tiniest2D (crée si nécessaire) |
getDocumentsPath() |
Renvoie le chemin du dossier Documents de l'utilisateur |
getGamePath() |
Renvoie le répertoire où se trouve l'exécutable du jeu |
Exemple : Enregistrement et chargement de la progression du joueur
// Enregistrer 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 enregistré !")
}
// 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]
}
}
// Enregistrement chiffré (pour cacher les données d'une inspection occasionnelle)
var secretData = ["secret", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binaire", "maCleSecrete")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "maCleSecrete")
// Format texte (lisible par l'homme, utile pour le débogage)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "texte")
Remarques :
- Le format binaire (par défaut) est compact et plus rapide
- Le format texte est lisible par l'homme, utile pour le débogage
- Une mauvaise clé de chiffrement renvoie
null(les données seront inutilisables) - Les répertoires sont créés automatiquement lors de l'enregistrement