Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: bygdle en Noviembre 24, 2015, 07:21:48 PM

Título: [Resuelto]problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:21:48 PM
Hola, estoy haciendolos botones de un juego, y me resulta un problema:
Al dibujar el sprite con draw_sprite_stretched_ext me lo dibuja desde las coordenadaas 0 y 0 del sprite, y no esde las coordenadas que le tengo asignadas. Cómo lo soluciono?
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: penumbra en Noviembre 24, 2015, 07:24:00 PM
Probablemente falle porque los valores que le estás pasando están mal. Pero sin saber cómo estas llamando a la función... quién sabe.
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:25:45 PM
[gml]
draw_sprite_stretched_ext(sButton,0,xx2,yyy,ww,hh,image_blend,0.5);
[/gml]
Las coordenadas están bien. Uso la funcion draw_sprite normal y lo dibuja donde debe
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: penumbra en Noviembre 24, 2015, 07:28:09 PM
Por lógica, si estuvieran bien, se dibujarían en el lugar que quieres, y no en 0, 0. Se me hace muy poco probable que la función tenga un bug. Yo he probado la función y trabaja bien. Usa show_debug_message para ver qué valores tiene xx2 y yyy, o quizás los valores de anchura y altura sean negativos, pero seguro que al menos uno de los parámetros no tiene un valor correcto
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:34:41 PM
A ver si no me expliqué...
Se dibuja en el lugar que quiero, pero se dibuja desde la esquina superior izquierda del sprite, algo así:

Con draw_sprite:
(https://i.gyazo.com/b04fd05338d815f5fa7c6dfde9e9a24b.png)

Con draw_sprite_stretched_ext:

(https://i.gyazo.com/661409e34bc07c0653b6cf5e8775c9df.png)
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: penumbra en Noviembre 24, 2015, 07:38:20 PM
Por eso no me cansaré de repetirlo: Hay que leer el manual  :D

CitarNOTE: When drawing with this function, the sprite x offset and y offset are ignored and the sprite will be drawn with the top left corner at the specified x / y position in the room.
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:39:14 PM
y no me cansaré de autocitarme...xD
Cita de: NiuWeb en Noviembre 24, 2015, 07:21:48 PM
...Cómo lo soluciono?
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: penumbra en Noviembre 24, 2015, 07:48:00 PM
Ahora entiendo muchas cosas  XD

A los parámetros de posición le debes restar el valor del offset horizontal y vertical del sprite, es decir, según donde tengas posicionado el origen en las propiedades del sprite. Lo que me regresa a la primera afirmación: las coordenadas que se le están pasando a la función no son correctas. A estas alturas, difícilmente una función NO NUEVA de GMS va a tener un fallo/bug. Casi siempre, para nuestra mala fortuna, son errores humanos.
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:51:25 PM
Ah, creo que entiendo, ¿algo así:?
[gml]
xx = 32-(sprite_get_width(sprite)/2);
yy = 32-(sprite_get_heigth(sprite)/2);
//Siendo 32 la posición que quiero
draw_sprite_stretched_ext(sprite,0,xx,yy,sprite_get_width(sprite),sprite_get_height(sprite),c_red,1);
[/gml]

Cómo no lo pensé antes T__T
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: penumbra en Noviembre 24, 2015, 07:54:17 PM
Eso funcionará siempre y cuando el origen esté centrado. Tambien se puede recurrir a las funciones

[gml]
xx = 32 - sprite_get_xoffset(mi_sprite)
[/gml]
Título: Re:problema con draw_sprite_stretched_ext
Publicado por: bygdle en Noviembre 24, 2015, 07:56:27 PM
Me has mostrado la luz, penumbra  ;)
PD: dafuc?
Título: Re:[Resuelto]problema con draw_sprite_stretched_ext
Publicado por: kostra en Noviembre 24, 2015, 08:50:52 PM
Mensaje fuera de contexto:
Me encanta cuando todos trabajamos a la vez y coincidimos en el foro, es taaan hermosoooo xDDD un saludo a todos los activos! :D