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 : image.png

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