Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Punto en rectángulo rotado  (Leído 1541 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Clamud

en: Abril 15, 2016, 01:45:55 am
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 );
///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;

Ejemplo adjunto.

 


No Tienes Permisos Para Dar Puntos
point 7 Puntos

Usuarios que puntuaron el tema » Jucarave (7 Pts) 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2482
  • Mensajes: 2.042
  • Agradecido: 92 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #1 en: Abril 17, 2016, 03:47:22 pm
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

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado Clamud

Respuesta #2 en: Abril 17, 2016, 05:02:26 pm
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.

 


Desconectado kostra

  • Legendario
  • *
  • Puntos: 2482
  • Mensajes: 2.042
  • Agradecido: 92 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #3 en: Abril 18, 2016, 03:06:01 pm
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

"ola k ase clickarme o k ase"
la imagen no se quita xD