Febrero 05, 2016, 08:42:43 PM Ultima modificación: Febrero 05, 2016, 09:55:54 PM por ardilla321
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


Si, esta activa.

No se por que no logro ver el personaje...


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  :-[

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();

#6 Febrero 05, 2016, 09:21:58 PM Ultima modificación: Febrero 05, 2016, 09:24:12 PM por ardilla321
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!!

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.

Perfecto! Muchas gracias por la aclaracion

Cambio el nombre del tema a solucionado.

Nuevamente, Muchas gracias a todos!

Mejor cambia el código del evento Draw a End Step, así evitas usar draw_self()