Como hacer una cinematica?por favor
es para la demo de mi juego.
Hay varias maneras, pero una sencilla es que mediante un contador o temporizador que va en aumento modifiques cosas de la escena, como la posición donde dibujaras un sprite, de que en un momento el sprite se mueva a la derecha, luego a la izquierda y finalmente para arriba
Por ejemplo, para todo esto tendriamos que crear un objeto llamado Cinematica
y que tenga los datos que se usarán en la cinematica, como la posición del sprite x
e y
, y lo principal es que tenga un contador (o sea, una variable que le vas aumentando) y en este caso se llamará tiempo
, ah y también debes tener algo que indique que la cinematica esta activada, o sea, una variable que le llamaré activo
También deberás tener tres funciones dentro de Cinematica
las cuales serían:
iniciar
: El cual al usarla inicia la cinematica y reinicia toda la escena, contador, y modifica la variableactivo
para que indique que la cinematica esta activada
avanzar
: El cual aumenta eltiempo
o contador y modifica las posiciones del sprite para la cinematica, además que desactiva la cinematica para cuando queramos que acabe esta
dibujar
: El cual dibuja toda la escena de la cinematica
(Por cierto, los nombres son opcionales)
Estas funciones deben usar las variables dentro de Cinematica
, llamandolas por this.x
para referirnos al x
de Cinematica
(aunque no necesariamente debes poner el this.
pero por si acaso hazlo)
Cinematica = object
x = 0
y = 0
tiempo = 0
activo = false
// Para activar la cinematica
iniciar = function()
this.x = 0
this.y = 0
this.tiempo = 0 // Contador de tiempo
this.activo = true // Indica que esta activado
end
avanzar = function()
// Aumenta el contador
this.tiempo+=1
// El tiempo esta entre 0 y 60
if this.tiempo < 60 then
this.x += 1
// El tiempo esta entre 90 y 140
elsif this.tiempo > 90 and this.tiempo < 140 then
this.x -= 2
// El tiempo esta entre 140 y 230
elsif this.tiempo >= 140 and this.tiempo < 230 then
this.y += 10
end
// Desactivar la cinematica cuando llega a 230
if this.tiempo >= 230 then
this.activo = false
end
end
dibujar = function()
screen.clear()
// Dibuja el sprite
screen.drawSprite("icon",this.x,this.y,30,30)
end
end
Luego para tus funciones del comienzo, o sea, hablo del update
y draw
, pues debes colocarle esto:
update = function()
if Cinematica.activo then
Cinematica.avanzar()
end
end
draw = function()
if Cinematica.activo then
Cinematica.dibujar()
end
end
Esto es para hacer avanzar y dibujar la cinematica cuando este activada, y para iniciar tu cinematica, solo usa Cinematica.iniciar()
Con ello tendrías una cinematica simple, hay otras maneras, por ejemplo, terminar las mecanicas de tu juego y luego en vez de colocar un sprite aparte, modifiques a los personajes de tu juego, los enemigos, el personaje del jugador, así como cuando estas fuera de la cinematica el jugador se mueva presionando las teclas, en la cinematica será mediante el contador
Gracias.ahora como hago que los policias(todos son el mismo sprite)tengan conversaciones diferentes o nombres?
Bueno pues eso dependerá como quieras que se vean las conversaciones, por ejemplo se podría mediante cuadros de texto, como esos juegos RPG, donde cada policia hablaria, algo como la imagen de abajo
Para esto podrías seguir usando el sistema del contador y hacer un sistema de texto, que en ciertos tiempos cambien el texto que dice cada policia, además de cambiar la foto y nombre, o también puedes hacer que el tiempo deje de aumentar (que se detenga) hasta que el jugador haga clic, para así poder continuar con el siguiente texto del dialogo entre los policias
Muchas gracias =). ahora manos ala programaciòn!