Foros - Stratos

Proyectos => Proyecto dx_lib32 => Mensaje iniciado por: en 19 de Mayo de 2006, 12:13:12 PM

Título: La Funcion Math_pointinrect
Publicado por: en 19 de Mayo de 2006, 12:13:12 PM
 Hola, soy nuevo en esto, me estoy creando un Arkanoid, y para saber si la pelota golpea un ladrillo estoy intentando usar la funcion MATH_PointInRect de esta forma

m_tools.MATH_PointInRect(Rect_Pelota, Rect_Ladrillos(pos))

Para comprobar si la pelota ha está sobre el ladrillo (pos) para hacerla rebotar, pero no hay manera! la función me salta aunque no choque!

Bueno mientras escribia esto me di cuenta del posible bug o error mio, resulta que el 1º ladrillo está sobre las coordenadas 0,0, al posicionarlo sobre 1,1 ya funciona ;)

Un saludo!
Título: La Funcion Math_pointinrect
Publicado por: en 19 de Mayo de 2006, 12:51:16 PM
 Rectifico... en el post de antes me referia a que no funciona la funcion MATH_IntersectRect, la que comentaba antes si que funciona. Le paso los 2 parametros que pide ( 2 rectangulos ) y siempre me dice que estan chocando :(
Título: La Funcion Math_pointinrect
Publicado por: [EX3] en 20 de Mayo de 2006, 05:06:44 AM
 Por dios, por que me daria por tocar esta funcion la ultima vez si ha estado funcionando 5 años (nooo) :P Un bug tan tonto como la copa de un pino y que ha sido reparado ya en el codigo. Vendra listo para la proxima version que aun no publicare hasta que añada algun detalle mas.

De momento utiliza este codigo que es justo el mismo que utiliza dx_lib32:
Public Function MATH_IntersectRect(DestRect As GFX_Rect, SourceRect As GFX_Rect) As Boolean
   MATH_IntersectRect = Not (((DestRect.X + DestRect.Width) < SourceRect.X) Or ((DestRect.Y + DestRect.Height) < SourceRect.Y) Or ((SourceRect.X + SourceRect.Width) < DestRect.X) Or ((SourceRect.Y + SourceRect.Height) < DestRect.Y))

End Function


Salu2 & 'sorry' por errores tan tontos ;)

P.D.: Ya con este bug tonto van 4 bugs tontos solucionados para la proxima release xD
Título: La Funcion Math_pointinrect
Publicado por: en 23 de Mayo de 2006, 12:29:01 PM
 Gracias! estaba usando un if con 4 funciones de MATH_PointInRect para calcular los cuatro vertices del rectangulo y calcular mal calculado si chocaban jeje