Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DarkKRuleR en Diciembre 16, 2015, 02:38:40 PM

Título: [ Resuelto ] Draw_sprite_ext ignorando el parámetro negativo image_yscale
Publicado por: DarkKRuleR en Diciembre 16, 2015, 02:38:40 PM
Buenas! Adjuntamente véis el sprite que dibujo. Su origen está en x=0, y=719 (abajo del todo), así que tiene el origen en la esquina inferior izquierda. Evento draw:

draw_sprite_ext( spHUDOjo, 0, 0, display_get_height()/2 - 1, display_get_width()/960, display_get_height()/720, 0, noone, 1 );
draw_sprite_ext( spHUDOjo, 0, 0, display_get_height()/2 + 1, display_get_width()/960, -display_get_height()/720, 0, noone, 1 );


Sólo dibuja un ojo, el superior, ignorando la segunda llamada. Si os fijáis, dibujando el sprite arriba, y redibujándolo abajo pero invertido verticalmente, debería formar un ojo. Al tener el punto de origen en la y inferior, tengo que dibujarlos en la mitad de la pantalla verticalmente. El ojo se escala y adapta a la pantalla, pero el segundo tiene un negativo en su image_yscale, debería invertirse pero... simplemente desaparece, y no le veo el sentido.

Sí, tienen que ser dos sprites separados. No, no quiero duplicar el sprite en el editor, quiero hacerlo por código :D
Título: Re:Draw_sprite_ext ignorando el parámetro negativo image_yscale
Publicado por: Clamud en Diciembre 16, 2015, 07:03:47 PM
Si dibujas en 3D, tal vez deberías desactivar el "sacrificio" de caras antes de dibujar los sprites
[gml]
d3d_set_culling( false );
[/gml]
Título: Re:Draw_sprite_ext ignorando el parámetro negativo image_yscale
Publicado por: DarkKRuleR en Diciembre 16, 2015, 07:18:33 PM
Gracias, no sé cómo no se me ocurrió T_T la cuestión es que era el evento draw en el objeto HUD, después de:

d3d_set_projection_ortho( 0, 0, view_wport, view_hport, 0 );

Para dibujar el HUD plano en la pantalla con sprites en vez de funciones d3d, pensé que ahí el 3D no funcionaría, pero veo que sí xD Pues a desactivarlo!