Créer des jeux 2D avec Tiniest2D
Fonctions de la boucle de jeu
Lesson 7 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.
Votre script peut définir ces fonctions spéciales que le moteur appelle automatiquement :
start()
Appelée une fois lorsque le jeu commence. Utilisez-la pour l'initialisation.
func start() {
setScene(level1)
setX(player, 100)
setY(player, 100)
print("Jeu commencé !")
}
onUpdate(dt)
Appelée à chaque frame. Le paramètre dt est le temps delta (temps depuis la dernière frame en secondes).
var speed = 100
func onUpdate(dt) {
if (isKeyHeld(KEY_RIGHT())) {
setX(player, getX(player) + speed * dt)
}
if (isKeyHeld(KEY_LEFT())) {
setX(player, getX(player) - speed * dt)
}
}
L'interface utilisateur est également dessinée à partir de onUpdate(dt). Les coordonnées de l'UI utilisent une résolution d'espace écran virtuelle. Par défaut, cet espace UI est 100 x 100, et vous pouvez le modifier avec setUIResolutionX() et setUIResolutionY(). La taille de la police, la couleur de la police et la couleur des éléments peuvent être ajoutées à des piles temporaires par frame pendant que vous construisez l'UI actuelle.
var musicOn = true
var volume = 5
func onUpdate(dt) {
uiPushElementColor(28, 40, 70, 220)
uiBox(3, 3, 30, 26)
uiPushFontSize(3)
uiPushFontColor(255, 220, 120)
uiLabel("PAUSE", 6, 6)
uiPopFontColor()
uiPopFontSize()
uiPushFontSize(2)
uiPushFontColor(240, 245, 255)
if (uiButton("REPRENDRE", 6, 12, 20, 6) == UI_CLICKED()) {
paused = false
}
musicOn = uiToggle("MUSIQUE", musicOn, 6, 20, 22, 6)
uiPopFontColor()
uiPopFontSize()
volume = uiSlider("VOL", volume, 0, 10, 6, 28, 24, 6)
uiPopElementColor()
}
onCollision(objA, objB)
Appelée lorsque deux objets entrent en collision. objA est toujours soit un objet Dynamique soit un objet Trigger (voir Système de Collision pour plus de détails).
func onCollision(objA, objB) {
var nameA = getName(objA)
var nameB = getName(objB)
if (nameA == "Joueur" && nameB == "Pièce") {
removeObject(level1, objB)
score = score + 1
}
}
end()
Appelée lorsque le jeu se ferme.
func end() {
print("Merci d'avoir joué !")
}