Diciembre 16, 2015, 02:38:40 PM Ultima modificación: Diciembre 16, 2015, 07:18:46 PM por DarkKRuleR
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

Si dibujas en 3D, tal vez deberías desactivar el "sacrificio" de caras antes de dibujar los sprites
[gml]
d3d_set_culling( false );
[/gml]

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!