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 :)
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
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 :)