Cogeremos tu código.
El problema es que cuando las declaras fuera, lo que estas diciendo es que a la variable A y B se les asigna un valor random, de maximo 400. En el momento en el que las declaras ya tienen un valor.
Despues empieza el bucle, en el cual lo unico que hace es crear el objeto 5 veces. La variable A y B no cambian por que ya las has declarado.
Una forma mas legible de lo que intento decir, es que en este código lo que pasa es esto.
Si lo que quieres es que salgan 5 pelotas en posiciones aleatorias, tienes que cambiar la variable A y B entre bucle y bucle. Esto solo puedes hacerlo dentro del bucle en sí. En el bucle lo que tendría que pasar es esto.
Estos ejemplos de código es solo para que sea mas entendible lo que quiero decir. Si declaras fuera del bucle, lo unico que haces es coger lo declarado fuera del bucle 5 veces. Y esto pasa en C++, te aviso por si acaso.
Código [Seleccionar]
a = random(400);
b = random(400);
for (i = 1; i <= 5; i += 1)
{
instance_create(a,b,obj_pelota);
}
El problema es que cuando las declaras fuera, lo que estas diciendo es que a la variable A y B se les asigna un valor random, de maximo 400. En el momento en el que las declaras ya tienen un valor.
Despues empieza el bucle, en el cual lo unico que hace es crear el objeto 5 veces. La variable A y B no cambian por que ya las has declarado.
Una forma mas legible de lo que intento decir, es que en este código lo que pasa es esto.
Código [Seleccionar]
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
instance_create(a,b,obj_pelota);
instance_create(a,b,obj_pelota);
instance_create(a,b,obj_pelota);
instance_create(a,b,obj_pelota);
Si lo que quieres es que salgan 5 pelotas en posiciones aleatorias, tienes que cambiar la variable A y B entre bucle y bucle. Esto solo puedes hacerlo dentro del bucle en sí. En el bucle lo que tendría que pasar es esto.
Código [Seleccionar]
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
a = random(400);
b = random(400);
instance_create(a,b,obj_pelota);
Estos ejemplos de código es solo para que sea mas entendible lo que quiero decir. Si declaras fuera del bucle, lo unico que haces es coger lo declarado fuera del bucle 5 veces. Y esto pasa en C++, te aviso por si acaso.