Misma acción, diferente sprite
hola queria preguntar como se hace para que cuando el jugador salte muestre otros sprites
Por ejemplo:
Si salta con Arriba muestra salto
Pero si salta con drecha y arriba debe mostrar una voltereta
hola queria preguntar como se hace para que cuando el jugador salte muestre otros sprites
Por ejemplo:
Si salta con Arriba muestra salto
Pero si salta con drecha y arriba debe mostrar una voltereta
Una forma que lo hice fue con una variable llamada volt
, una forma de resumir sería que detectes cuando deberia tener el frame de giro, y luego de eso en el momento de escoger el frame, veas cual de todos escoger, depende mucho de lo que quieras añadir o que tantos frames tendrá
Player = class
constructor = function()
this.x = 0
this.y = 0
this.move_x = 0 //Para saber si se mueve de izquierda a derecha
this.volt = false //Para ver si activo el giro o no
end
update = function()
//Detectar para donde se mueve el jugador
move_x = keyboard.RIGHT-keyboard.LEFT
//Ver si el jugador esta debajo o en el suelo
//Osea (-40)
if y <= -40 then
//Si salta entonces dar velocidad de salto
if keyboard.UP then vy = 4
//Sino reacomodarlo en el suelo y
//hacer que no siga bajando, además
//poner volt como false o 0
else
volt = false
y = -40
vy = 0
end
//Ver si el jugador esta en el aire
else
//Si el jugador se mueve de izquierda a
//derecha entonces dar volt como true o 1
if move_x and not volt then volt = true end
//Dar gravedad al jugador
vy -= 0.1
end
//Aumentar la variable volt para el
//efecto de giro de abajo
if volt then volt+=1 end
//Hacer mover al jugador, y darle gravedad
x += move_x
y += vy
end
draw = function()
//Efecto de giro del jugador
screen.setDrawRotation(volt*10)
//Escojer el sprite
sprites["player"].setFrame(
//Ver si volt es diferente de 0 y si es
//entonces escojer el sprite 1 (de giro)
if volt then 1
//Sino entonces escoger uno del que se mueve
elsif move_x then move_x + 3
//Y si es ninguno de los dos, entonces esta quieto
else 0 end
)
//Dibujar al jugador
screen.drawSprite("player",x,y,20,20)
//Reacomodar la función que hace ver girado
screen.setDrawRotation(0)
end
end
init = function()
player = new Player()
end
update = function()
player.update()
end
draw = function()
screen.clear()
player.draw()
end
gracias voy a ver como lo adapto al proyecto que estoy haciendo