Febrero 18, 2012, 06:34:33 PM Ultima modificación: Febrero 21, 2012, 06:24:42 PM por VideoGamer
Hola.
Estoy haciendo que un objeto1 en "create", cree 5 objetos mas, uno a cada lado y otros 3 atrás de estos.
Mi duda es, Como le hago para que si se mueve el del centro de enfrente, que es el principal, los otros giren alrededor, quedando a la misma distancia del objeto1.
No se si me doy a entender, si no me dicen para subir una imagen o algo asi
Gracias

La verdad yo no he entendido muy bien, ¿podrías subir la imagen?.

Creo que si te entendí, es algo más complejo de lo que se ve; pero para empezar, si solo quieres que cuando se desplace el "jefe" todos se desplacen igual, puedes poner lo siguiente en el evento create de los objetos que son creados:


boss = false;


Cuando los vayas creando, haz lo siguiente:

var objeto;
objeto = instance_create(x,y,obj...)
objeto.boss = id;


y por último, en el step de los objetos creados pones:


if(boss)
{
  direction=boss.direction;
  speed = boss.speed;
}


Para desplazamiento simple, ésto te funcionará (creo  :P)

Ok, gracias knd144, eso me sirve pero no es lo que quiero exactamente.
Subo la imagen suponiendo que el circulo negro es el jefe y los otros son la "escolta", por así llamarlos.
Antes se me olvidó mencionar que es en vista isometrica, por lo que debió ser mas complicado entenderme y me disculpo por eso.
Lo que quiero es que se muevan siguiendo al "boss" y manteniendo la formación, no se si con eso y la imagen se entienda mejor, o díganme y veo cómo lo puedo llegar a explicar mas.

Se ve muy Age of Empires con soldados :D
Con este codigo que me dio Elvis Kelley, se puede hacer para que se ponga detras del boss, lo que se podria usar para posicionar a todos los circulos alrededor
//Para crear un punto a cierta distancia detras de un objeto
var xx,yy;
xx= 150*cos(degtorad(image_angle)); //Modificar 150 para la distancia en pixeles
yy= 150*sin(degtorad(image_angle));
seguirx = x-xx //La variable a la que seguir
seguiry = y-yy


Y luego a uno de los circulos blancos haces que
x=boss.seguirx
y=boss.seguiry


Bueno, con eso pones un circulo delante del boss, pero quieres que este detras, asi que solo haces negativo a image_angle
//Para crear un punto a cierta distancia detras de un objeto
var xx,yy;
xx= 150*cos(degtorad(-image_angle)); //Modificar 150 para la distancia en pixeles
yy= 150*sin(degtorad(-image_angle));
seguirx = x-xx //La variable a la que seguir
seguiry = y-yy
[/code]

Ahi esta, el circulo blanco esta siempre detras a 150 pixeles de distancia del boss

Pero... faltan los otros! :P

Eso se cambia modificando image_angle... para un circulo que va al costado del boss de le suma o resta 90º, asi:
//Para crear un punto a cierta distancia detras de un objeto
var xx,yy;
xx= 150*cos(degtorad(-image_angle-90)); //Modificar 150 para la distancia en pixeles
yy= 150*sin(degtorad(-image_angle-90));
seguirx = x-xx //La variable a la que seguir
seguiry = y-yy
[/code]

Ten en cuenta que el que va al otro lado del boss se le suma 90 en vez de restarle

Faltan los dos que van en diagonal todavia.... :o

Eso de hace restandole y sumandole 45º, y con trigonometria cambiarle la distancia para que la formacion no sea circular, aver que calcule...
CitarCateto=150
Cateto2=150
Hipotenusa=?

C2+C22=H2  Facil no?, ahora a cambiar los datos...
1502+1502=H2
22500+22500=H2
45000=H2
Raiz cuadrada de 45000=H
212=H

Listo, ahora para los diagonales seria:
//Para crear un punto a cierta distancia detras de un objeto
var xx,yy;
xx= 212*cos(degtorad(-image_angle-45)); //Modificar 150 para la distancia en pixeles
yy= 212*sin(degtorad(-image_angle-45));
seguirx = x-xx //La variable a la que seguir
seguiry = y-yy


Listo... ahora te hago un ejemplo  :)
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Aca esta 8)
Tene en cuenta que cambie las distancias (lo que estaba en 150, te acordas?), porque me parecio mucho
Esta adjuntado

PD: Cuidado, olvidaste de poner icono al tema y lo he hecho en GM8, si tienes GM7 o anterior no funcionara
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Muchas Gracias, es justo lo que quería y según yo si puse el simbolo de GM8 en el titulo del tema, pero gracias por especificar. Tema cerrado  :)