Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Exportation de Votre Jeu

  1. Cliquez sur l'icône Export dans la barre supérieure
  2. Choisissez un emplacement et un nom de fichier pour votre jeu
  3. Le moteur crée un .exe autonome avec votre projet intégré
  4. Distribuez ce fichier unique - aucun autre fichier nécessaire !

Le jeu exporté :

  • Fonctionne sans l'interface de l'éditeur
  • Contient toutes les images, scènes et codes
  • Est chiffré pour protéger vos actifs

Astuces et Meilleures Pratiques

Performance

  • Gardez les tailles d'image raisonnables (pixels, pas haute résolution)
  • Supprimez les objets dont vous n'avez plus besoin avec removeObject()
  • Utilisez des calques pour organiser l'ordre de rendu

Organisation

  • Donnez des noms significatifs aux objets et aux images
  • Utilisez des commentaires pour documenter votre code
  • Regroupez les variables connexes

Débogage

  • Utilisez print() pour afficher les valeurs des variables
  • Les messages d'impression apparaissent dans la fenêtre du jeu
  • Vérifiez les types de collision si les objets passent à travers les murs

Problèmes Courants

Objets ne se collant pas :

  • Vérifiez les types de collision (les deux objets doivent avoir des types appropriés)
  • Assurez-vous que les objets sont ajoutés à la scène
  • Vérifiez que le sprite a un collisionneur activé

Les objets passent à travers les murs :

  • Les murs devraient être COLLISION_STATIC()
  • Les objets mobiles devraient être COLLISION_DYNAMIC()
  • Les objets très rapides pourraient passer à travers - réduisez la vitesse ou augmentez les limites de collision

La caméra ne suit pas le joueur :

  • Mettez à jour la position de la caméra dans onUpdate(), pas seulement dans start()
  • N'oubliez pas que la position de la caméra est le centre de la vue

Carte de Référence Rapide

// Créer des actifs
var img = Sprite(16, 16)
var scene = Scene()
var sfx = Audio()
var obj = Object("Nom")

// Manipulation d'objets
setX(obj, 100)
setY(obj, 100)
setSprite(obj, img)
setCollisionType(obj, COLLISION_DYNAMIC())
addObject(scene, obj)

// Manipulation de sprites
fillSprite(img, 255, 0, 0, 255)  // Remplir de rouge
setPixel(img, 0, 5, 5, 0, 255, 0, 255)  // Définir le pixel à (5,5) sur la trame 0
var color = getPixel(img, 0, 5, 5)      // Obtenir [r,g,b,a] à (5,5)
setAnimationFPS(img, 24)         // Définir la vitesse d'animation
var fps = getAnimationFPS(img)   // Obtenir la vitesse d'animation

// Physique (vitesse + gravité)
setGravityY(scene, 300)         // Définir la gravité de la scène
setVelocityX(obj, 100)          // Déplacer à droite
setVelocityY(obj, -200)         // Sauter vers le haut

// Contrôle d'animation
setFrame(obj, 0)           // Définir à un cadre spécifique
var frame = getFrame(obj)  // Obtenir le cadre actuel
var count = getFrameCount(obj)  // Nombre total de cadres

// Contrôle de scène
setScene(scene)
resetScene(scene)
setBackgroundColor(scene, 135, 206, 235)  // Bleu ciel

// Requêtes de scène
var obj = getObjectAt(scene, mx, my)       // Objet au point
var hits = getObjectsInBox(scene, x, y, 32, 32)  // Objets dans la zone
var enemy = getObjectByName(scene, "ennemi")     // Trouver par nom
var all = getAllObjects(scene)             // Obtenir tous les objets
var count = getObjectCount(scene)          // Compter les objets
var coins = getObjectsBySprite(scene, coinSprite)  // Par sprite
var enemies = getObjectsByCollisionType(scene, COLLISION_DYNAMIC())

// Audio
var handle = playAudio(sfx)
if (isAudioPlaying(handle)) { }
stopAudio(handle)

// Caméra (position = centre de la vue)
setCameraX(scene, x)
setCameraY(scene, y)
setCameraZoom(scene, 3.0)  // Affiche 240 unités du monde verticalement

// Écran et conversion de coordonnées
var w = getScreenWidth()
var h = getScreenHeight()
var worldPos = screenToWorld(mouseX, mouseY)  // [worldX, worldY]
var screenPos = worldToScreen(objX, objY)     // [screenX, screenY]

// Mode fenêtre (n'affecte que les jeux exportés)
setWindowMode(WINDOW_MAXIMIZED())  // Par défaut
setWindowMode(WINDOW_FULLSCREEN()) // Plein écran sans bordure
setWindowMode(WINDOW_WINDOWED())   // Fenêtre régulière

// Entrée clavier
if (isKeyPressed(KEY_SPACE())) { }
if (isKeyHeld(KEY_LEFT())) { }

// Entrée souris
if (isMouseButtonPressed(MOUSE_LEFT())) { }
var mx = getMouseX()
var my = getMouseY()

// Nombres aléatoires et mathématiques
var r = random()              // 0.0 à 1.0
var n = randomInt(1, 10)      // 1 à 10
var x = clamp(14, 0, 10)      // 10
var y = lerp(0, 100, 0.5)     // 50
var snapped = round(15.7)     // 16
var dir = sign(-8)            // -1
var power = pow(2, 3)         // 8
var angle = PI() / 2          // 1.5708... radians
var bob = sin(angle)          // La trigonométrie utilise des radians
var deg = rad2deg(angle)      // 90 degrés

// Piles de style UI
uiPushElementColor(28, 40, 70, 220)
uiPushFontColor(255, 220, 120)
uiLabel("PRÊT", 4, 4)
uiPopFontColor()
uiPopElementColor()

// Stockage (sauvegarde/chargement des données de jeu)
var data = [100, "Joueur", true]
save(getAppDataPath() + "/MonJeu/save.dat", data)
var loaded = load(getAppDataPath() + "/MonJeu/save.dat")
if (fileExists(getAppDataPath() + "/MonJeu/save.dat")) { }
deleteFile(getAppDataPath() + "/MonJeu/ancien.dat")

// Contrôle du jeu
quitGame()  // Quitter le jeu

// Boucle de jeu
func start() { }
func onUpdate(dt) { }
func onCollision(a, b) { }
func end() { }

Tiniest 2D Pixel Engine - Faites des jeux, pas des moteurs.