Crea Juegos 2D con Tiniest2D
Funciones del Bucle del Juego
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.
Tu script puede definir estas funciones especiales que el motor llama automáticamente:
start()
Se llama una vez cuando comienza el juego. Úsalo para la inicialización.
func start() {
setScene(level1)
setX(player, 100)
setY(player, 100)
print("¡Juego iniciado!")
}
onUpdate(dt)
Se llama cada fotograma. El parámetro dt es el tiempo delta (tiempo desde el último fotograma en segundos).
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)
}
}
La UI también se dibuja desde onUpdate(dt). Las coordenadas de UI utilizan una resolución de pantalla virtual. Por defecto, ese espacio de UI es 100 x 100, y puedes cambiarlo con setUIResolutionX() y setUIResolutionY(). El tamaño de fuente, color de fuente y color de elemento pueden ser colocados en pilas temporales por fotograma mientras construyes la UI actual.
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("PAUSADO", 6, 6)
uiPopFontColor()
uiPopFontSize()
uiPushFontSize(2)
uiPushFontColor(240, 245, 255)
if (uiButton("CONTINUAR", 6, 12, 20, 6) == UI_CLICKED()) {
paused = false
}
musicOn = uiToggle("MÚSICA", musicOn, 6, 20, 22, 6)
uiPopFontColor()
uiPopFontSize()
volume = uiSlider("VOL", volume, 0, 10, 6, 28, 24, 6)
uiPopElementColor()
}
onCollision(objA, objB)
Se llama cuando dos objetos colisionan. objA es siempre un objeto Dinámico o de Activación (ver Sistema de Colisiones para más detalles).
func onCollision(objA, objB) {
var nameA = getName(objA)
var nameB = getName(objB)
if (nameA == "Jugador" && nameB == "Moneda") {
removeObject(level1, objB)
score = score + 1
}
}
end()
Se llama cuando el juego se cierra.
func end() {
print("¡Gracias por jugar!")
}