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!
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 :(
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
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