Autor: Klamud
Versión: :GM8:
Descripción: Define un rectángulo rotado y revisa si un punto está dentro del rectángulo. Lo mismo se puede hacer con image_angle, pero este script debe tener mayor precisión.

punto_en_rect_rotado( x,y, u,v, w,h, px,py, angulo );
[gml]
///punto_en_rect_rotado( x,y, u,v, w,h, px,py, angulo );
/*                       0 1  2 3  4 5  6  7   8
PUNTO EN RECTANGULO ROTADO
x,y: punto de rotacion en room
u,v: punto de rotacion en rectangulo
w,h: anchura y altura
px,py: punto de prueba
angulo: angulo en grados
*/
var Ax,Ay, Bx,By;

//vector A
Ax = argument6 - argument0;
Ay = argument7 - argument1;

//rotar vector y sumar uv
Bx = lengthdir_x(Ax,argument8) + lengthdir_y(Ay,argument8) + argument2;
By = lengthdir_x(Ay,argument8) - lengthdir_y(Ax,argument8) + argument3;

//resultado
return Bx>0 and Bx<argument4 and By>0 and By<argument5;
[/gml]

Ejemplo adjunto.

hmm, esto se puede utilizar, por ejemplo para detectar estas figuras si coinciden, y la diferencia en el caso de que no?, no sé si mexplico... xD
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Creo que no texplicas, ¿te refieres a calcular la distancia entre dos rectángulos rotados y saber si hay intersección?, en ese caso, este script sí se puede usar para una parte del proceso; como sea, me diste ideas para otros scripts.

esactamente saber esa distancia, en grados o radianes, pero la distancia que hay, no en si hay colision o no, sino en que coincidan en el mismo lugar que seria distancia 0... digamos, como los juegos musicales como ddr o stepmania, que vienen las flechas, y has de darle justo y a mas cerca mas puntos... pues lo mismo pero con rotacion entre dos rectangulos en este caso :B
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]