Hola a todos, estoy con esto que no puedo resolver y ya llevo muchas horas intentando, lo que necesito es que dos objetos no se alejen más de cierta distancia, lo he intentado todo, lo más cerca que pude estar fue poniendo:
if distance_to_object (objeto)>50{
x=xprevious
y=yprevious
}
Pero no logro lo que quiero y se traba al llegar al límite de 50. Por favor si alguien sabe como se podría hacer se lo voy a agradecer, lo que necesito es un límite de radio como si se trazara un círculo alrededor del objeto. Estoy muy trabado con esto amigos. Saludos
La condición del if es justamente inversa a lo que pretendes.Debería ser
[gml]
if distance_to_object (objeto)<50{
//mover
}
[/gml]
No sé exactamente qué movimiento quieres hacer, pero x = xprevious pudiera no funcionar como imaginas.
Si no te funciona prueba con esto:
if (distance_to_object (objeto)<50){
if (x<objeto.x) {
x=objeto.x - 50
} else {
x=objeto.x + 50
}
if (y<objeto.y) {
y=objeto.y - 50
} else {
y=objeto.y + 50
}
}
o...
if (distance_to_object (objeto)<50) speed = 0; else speed = loquetenías
:/ y si no usas speed ni ninguna variale de velocidad propia, la primera respuesta me da que es la buena
Aquí hay otro código:
[gml]
///Mantener distancia
if( point_distance(objeto.x,objeto.y,x,y) > 50 )
{
angulo = point_direction(objeto.x,objeto.y,x,y);
x = objeto.x + lengthdir_x(50,angulo);
y = objeto.y + lengthdir_y(50,angulo);
}
[/gml]
Si quieres ver como funciona adjunto un ejemplo (mueve el circulo rojo con las flechas).
Hola gente, bueno quiero agradecer por todas las respuestas, yo en este momento estoy fuera de mi casa pero cuando llego pruebo los códigos y cuento como me fue. Clamud te agradezco mucho también que te hayas tomado el trabajo de hacer el ejemplo, también lo veré cuando llegue.
Me quedé corto tal vez con lo que quise transmitir, igualmente seguro alguna de las respuestas va a funcionar, para ser más exacto y para que me entienda cualquiera, lo que quiero lograr en el juego es una flecha que indique donde va a ir un proyectil que se lanza mediante un impulso físico, o sea, toco el proyectil y a medida que me alejo con el puntero sale del objeto hacia el lado contrario esa flecha que indica aproximadamente el impulso que va a imprimir y al soltar bumm dispara. En principio lo hice con draw_sprite_ext y escalando la flecha pero queda muy pixelada y no me gustó así que pensé que sería mejor solo la punta de la flecha sin escalarse que se aleje y tal vez le ponga algún efecto, huella, estela, pero más o menos esa es la idea. Gracias de nuevo y en unas horas les cuento como me fue. Saludos amigos
Amigo entonces a la otra adjunta una imagen.
Al finnnnnn !!! probé lo que me dijeron y la que me funciona a la perfección es la de Clamud, realmente muy bueno el ejemplo y con solo copiar y pegar el código y cambiando los objetos obtengo lo que describí en el último mensaje, no pongo el código porque como digo es tal cual lo que puso Clamud, gracias amigo me diste una gran mano y gracias a todos por sus respuestas. Perdón por no darme cuenta de subir una foto, seguro hubiese sido más fácil interpretar mi trabalenguas jaja, saludos amigos!