hola, ¿como se hace que cuando se cree un objeto que el sprite tenga una animacion que se mueva como flotando???

Cita de: Sr.Mojon en Octubre 13, 2018, 09:28:08 PM
hola, ¿como se hace que cuando se cree un objeto que el sprite tenga una animacion que se mueva como flotando???
No entendi bien que necesitas, pero con crear un Sprite y la animacion del moverse a cierta distancia de arriba hacia abajo bastaria...

Usando image_speed mayor a 0 deberia reproducirse la animacion.
Usas algun evento DRAW ? dibujas el sprite usando draw_sprite ?

si lo dibujo con draw_sprite eso es para que dependiendo del tiempo que le quede al objeto se iba desapareciendo poco a poco

En draw_sprite(sprite,subimg,x,y) que valor pones en subimg ? deberia se -1 o all


Hola Sr.Mojon

Si quieres crear un efecto de oscilación, lo mejor es usar las funciones trigonométricas, sugiero la función seno.

Creation Event
angle = 0

Step Event
angle +=4 //Esta es la velocidad, puedes usar un número más alto para que vaya más rápido
if angle >=360 angle -= 360


Draw Event
var cap = 16 //La cantidad máxima de pixeles que baja y sube
var y_offset = cap*dsin(angle)
draw_sprite(tu_sprite,la_sub_imagen,la_x,y_offset+la_y)


Eso hará que el sprite se mueva hacia arriba y abajo en un movimiento oscilante (con rango -cap;+cap en pixeles, para este ejemplo -16, +16 pixeles)
Puedes dibujar una sombra fija a nivel del suelo para que de una mejor sensación de que el objeto está flotando.

En GM8 no existe la función dsin(), en reemplazo debes usar: sin(degtorad(angle))

Si no es eso lo que necesitas, ignora este mensaje xD

Saludos

me sale un error

var cap = 16 //La cantidad máxima de pixeles que baja y sube
var y_offset = cap*dsin(angle)  --------- aqui
draw_sprite(tu_sprite,la_sub_imagen,la_x,y_offset+la_y)

Hola Sr.Mojon

Qué error sale?

unknown funtion or script: dsin

Hola Sr.Mojon

Es por tu versión de Game Maker entonces, dsin está disponible desde GMS 1.4 en adelante.

Usa la función de GM8.

Saludos

se que es estúpido pero como hago la sombra para que parezca que flota??  XD

Hola Sr.Mojon

Puedes simplemente dibujar un círculo negro.
draw_ellipse(x1,y1,x2,y2,false)

O algo más elaborado puede ser dibujar el mismo sprite pero aplastado.
draw_sprite_ext(sprite_index,image_index,x,y+sprite_height+cap,1,0.2,0,c_black,1)

Eso dibujará el sprite con una escala en Y del 20% de su tamaño original.

Puedes incluso reducir e incrementar la escala de la sombra a medida que el objeto suba o baje para causar un efecto de altura.

Saludos cordiales

Si pones 0 en subimg solo se mostrara la primer imagen del sprite, por eso no se reproduce la animacion, pon -1 o la palabra all

BssString en el código lo pongo asi y ya?? porque cuando el juego inicia me da un error en las variables