Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TheSquirrel en Febrero 05, 2016, 08:42:43 PM

Título: No muestra el Sprite con el Sprite_index [Solucionado]
Publicado por: TheSquirrel en Febrero 05, 2016, 08:42:43 PM
Estimados, tengo el siguiente problema:
Estoy usando el evento Draw para cambiar el sprites de mi objeto (Player), sin embargo, al iniciar el juego el objeto lo crea sin ningun sprite.

Create
Start = 1
Dir = "R"

STEP
if Start = 1
   {
   if keyboard_check_direct(global.Right) {Dir = "R" image_index = 0 Start = 2}
   if keyboard_check_direct(global.Left) {Dir = "L" image_index = 0 Start = 2}
   }


DRAW:
if Start = 1 sprite_index = spr_player_front
if Start = 2
     {
     if Dir = "R" sprite_index = spr_player_stand
     if Dir = "L" sprite_index = spr_player_stand image_xscale = -1
     }


la varibale global.right y global.left estan en otro objeto, tambien presente en la misma room

Muchas gracias
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: Ynfiniti en Febrero 05, 2016, 08:46:48 PM
Chequea que la opción "visible" esté activada

(https://dl.dropboxusercontent.com/u/39289049/Sprii.bmp)
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: TheSquirrel en Febrero 05, 2016, 08:52:21 PM
Si, esta activa.

No se por que no logro ver el personaje...
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: focox2099 en Febrero 05, 2016, 08:57:28 PM
En Draw debes poner: draw_self();
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: focox2099 en Febrero 05, 2016, 09:00:20 PM
Cita de: focox2099 en Febrero 05, 2016, 08:57:28 PM
En Draw debes poner: draw_self();

Ahora vi que estabas en Game Maker 8 Sorry  :-[
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: Ynfiniti en Febrero 05, 2016, 09:04:39 PM
Cuando en un objeto con sprite usas el evento draw, debes poner en el evento DRAW:

En GM8:
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);

En GMS:
draw_self();
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: TheSquirrel en Febrero 05, 2016, 09:21:58 PM
Pero en ese caso, que tendria que usar para hacer un mirror en mi sprite. Porque en el codigo anterior use Image_xscale = -1... acabo de probarlo y no funciona con xscale
Por otra parte, me podrias explicar ¿por que funciona Draw_sprite_ext y no con sprite_index? tengo un ejemplo que lo hace con sprited_index y funciona ¿?
¡Muchas gracias porque hasta el momento el Sprite aparece!

EDITO

Ya solucione la pregunta anterior, solo puse un -1 en:

draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha)

Pero aun asi me gustaria saber por que no funcionaba sprite_index

Muchas gracias!!
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: Iros en Febrero 05, 2016, 09:39:33 PM
ardilla321 no te funcionaba sprite_index porque no es una función que se coloque en el evento Draw, como dijo Ynfiniti, si en tu objeto colocás el evento Draw se va a eliminar el sprite asignado y tenes que redibujarlo. Si en tu objeto no dibujás nada poné el código que tenías en el evento Draw en Step y te va a funcionar.
Título: Re:No muestra el Sprite con el Sprite_index
Publicado por: TheSquirrel en Febrero 05, 2016, 09:55:07 PM
Perfecto! Muchas gracias por la aclaracion

Cambio el nombre del tema a solucionado.

Nuevamente, Muchas gracias a todos!
Título: Re:No muestra el Sprite con el Sprite_index [Solucionado]
Publicado por: Clamud en Febrero 06, 2016, 12:43:50 AM
Mejor cambia el código del evento Draw a End Step, así evitas usar draw_self()