aka Blue Posted September 28, 2016 Posted September 28, 2016 Buenas. Estoy utilizando un nuevo método para hacer dxDraws relativos y tengo problemas con el dxDrawRectangle, la cosa está en que, en resolución baja (800x624 si no me equivoco), se ponen más pequeños y no sé si en una mayor a la que tengo (1024x768) se verían bien o mal. Ésto es lo que uso: -- Parte normal: local sx, sy = guiGetScreenSize( ) dxDrawRectangle( sx/19, sy/10+480, sx/5, sy/30, tocolor( 0, 0, 0, 50 ) ) -- Con posiciones del ratón: local sx, sy = guiGetScreenSize( ) local mx, my, worldx, worldy, worldz = getCursorPosition( ) dxDrawRectangle( sx*mx-10, sy*my-3, sx/10+90, sy/10+70, tocolor( 0, 0, 0, 80 ) ) Gracias de antemano.
Enargy, Posted September 29, 2016 Posted September 29, 2016 2 hours ago, aka Blue said: Buenas. Estoy utilizando un nuevo método para hacer dxDraws relativos y tengo problemas con el dxDrawRectangle, la cosa está en que, en resolución baja (800x624 si no me equivoco), se ponen más pequeños y no sé si en una mayor a la que tengo (1024x768) se verían bien o mal. Ésto es lo que uso: -- Parte normal: local sx, sy = guiGetScreenSize( ) dxDrawRectangle( sx/19, sy/10+480, sx/5, sy/30, tocolor( 0, 0, 0, 50 ) ) -- Con posiciones del ratón: local sx, sy = guiGetScreenSize( ) local mx, my, worldx, worldy, worldz = getCursorPosition( ) dxDrawRectangle( sx*mx-10, sy*my-3, sx/10+90, sy/10+70, tocolor( 0, 0, 0, 80 ) ) Gracias de antemano. Eso no son relativos. y son mas pequeños porque los estas dividiendo.
aka Blue Posted September 29, 2016 Author Posted September 29, 2016 ¿Hay cálculos que lo transformen en relativo? Para los text uso sx/1000, sy/1000 y la escala sy*scale
Enargy, Posted September 29, 2016 Posted September 29, 2016 9 hours ago, aka Blue said: ¿Hay cálculos que lo transformen en relativo? Para los text uso sx/1000, sy/1000 y la escala sy*scale Haciendo la inversa.
Enargy, Posted September 30, 2016 Posted September 30, 2016 3 hours ago, aka Blue said: 1024/sx, 768/sy (? Si pero no la dividas con tu resolución sino con la posición del rectángulo.
aka Blue Posted September 30, 2016 Author Posted September 30, 2016 Gracias @Gaberiel. Quiero preguntar... ayer hice lo siguiente, porque lo vi en un post de la sección inglesa. local sWidth, sHeight = guiGetScreenSize( ) local sx1, sy1 = sWidth/1024, sHeight/768 dxDrawRectangle( sx1*50, sy1*555, sx1*210, sy1*25, tocolor( 0, 0, 0, 50 ) ) Por lo visto se dibuja bien en todas las resoluciones (lo dibujé en 800 y lo testeé en 1024 y por lo visto, quedaba en la misma posición), aunque no estoy muy seguro. Y bueno, mi otra duda es hacerlo relativo con la posición del ratón, ya que, ahora tengo ésto: local sx, sy = guiGetScreenSize( ) local mx, my, worldx, worldy, worldz = getCursorPosition( ) dxDrawRectangle( sx*(1024/sx*mx-0.004), sy*(768/sy*my), sx*(1024/sx/5), sy*(768/sy/10+0.095), tocolor( 0, 0, 0, 80 ) ) dxDrawImage ( sx*mx+42, sy*my, sx/12, sy/10, 'tuerca.png', 0, 0, 0, tocolor( 255, 145, 0, 200 ) ) Ví en la wiki, exactamente en la explicación de guiGetScreenSize que lo que se tenía que dividir era la posición del rectángulo entre la resolución de la pantalla y después multiplicarlo.
Enargy, Posted September 30, 2016 Posted September 30, 2016 (edited) 13 hours ago, aka Blue said: Gracias @Gaberiel. Quiero preguntar... ayer hice lo siguiente, porque lo vi en un post de la sección inglesa. local sWidth, sHeight = guiGetScreenSize( )local sx1, sy1 = sWidth/1024, sHeight/768dxDrawRectangle( sx1*50, sy1*555, sx1*210, sy1*25, tocolor( 0, 0, 0, 50 ) ) Por lo visto se dibuja bien en todas las resoluciones (lo dibujé en 800 y lo testeé en 1024 y por lo visto, quedaba en la misma posición), aunque no estoy muy seguro. Y bueno, mi otra duda es hacerlo relativo con la posición del ratón, ya que, ahora tengo ésto: local sx, sy = guiGetScreenSize( )local mx, my, worldx, worldy, worldz = getCursorPosition( )dxDrawRectangle( sx*(1024/sx*mx-0.004), sy*(768/sy*my), sx*(1024/sx/5), sy*(768/sy/10+0.095), tocolor( 0, 0, 0, 80 ) )dxDrawImage ( sx*mx+42, sy*my, sx/12, sy/10, 'tuerca.png', 0, 0, 0, tocolor( 255, 145, 0, 200 ) ) Ví en la wiki, exactamente en la explicación de guiGetScreenSize que lo que se tenía que dividir era la posición del rectángulo entre la resolución de la pantalla y después multiplicarlo. addEventHandler("onClientRender", root, function() local sx, sy = guiGetScreenSize( ) local mx, my = getCursorPosition( ) local cx, cy = mx*sx, my*sy mx, my = cx / sx, cy / sy x, y = mx * sx, my * sy dxDrawRectangle(x, y, sx*(1024/5), sy*(768/sy/10+0.095), tocolor( 0, 0, 0, 80 ) ) --dxDrawImage ( sx*mx+42, sy*my, sx/12, sy/10, 'tuerca.png', 0, 0, 0, tocolor( 255, 145, 0, 200 ) ) end ) CX y CY te da el resultado directo, MX y MY lo pasa a relativo. x, y fue un adicional que le agregue porque nose como piensas implementar que el cursor mueva el rectangulo con relativos asi que por eso está x, y; aunque como dije que cx, cy te los da directamente. Edited September 30, 2016 by Gaberiel Added
Recommended Posts