Cita de: Naitsabes0 en Octubre 01, 2017, 04:17:12 AMCita de: cristopher2545 en Octubre 01, 2017, 02:40:16 AMCita de: Naitsabes0 en Octubre 01, 2017, 01:15:43 AMCita de: 3dgeminis en Octubre 01, 2017, 12:21:22 AMPues eso me hace crear una bola que no cumple con ninguna característica.
Primero debes crear las bolas una al lado de la otra (con un ciclo for por ejemplo) y en cada bola estos codigos :
CREATE
[gml]
distancia=(x-jugador.x)
giro=0
[/gml]
STEP
[gml]
giro+=5
x=jugador.x+lengthdir_x(distancia, giro)
y=jugador.y+lengthdir_y(distancia, giro)
[/gml]
Hace mucho tiempo hice de forma accidental la linea con el jugador, no le di relevancia por no ser lo que buscaba hace 1/4 de año, pero ahora me doy cuenta que podía ser un nuevo estilo de agrupamiento, para este accidente nenia que cambiarle la ubicación de algunas variables, pero no he logrado replicar este acontecimiento. :-\
CODIGO CREATE DEL JUGADOR vamos a hacer que el jugador cree las bolasCódigo [Seleccionar]
///Creacion de las bolas
for(i=0; i<5; i++) //cantidad de bolas
{
id_bola=instance_create(obj_player.x, obj_player.y,obj_orb)
with(id_bola) {distancia=(x-obj_player.x+20)*other.i} // distancia de las bolas
}
y ya no hay mas te agrego una captura de como se ve , aveces debes de hacer mas de lo que crees para que algo funcione
Debo admitir que se ve bien.
El funcionamiento es como el que especificas, las bolas van manteniendo una distancia = a la anterior, asiendo que orbiten sin romper la formación, podrían dar esto por resuelto, lo único que me causa inquietud es que a pesar de que modifico sus valores para distanciar un poco las bolas del jugador, la bola 1° o al menos la que esta mas cerca del jugador, pierde utilidad por estar dentro de el, como en la formación circular nunca una bola tocaba al jugador, pensé que consideraría al jugador como la zona de inicio para crear la 1° bola a un lado de este en vez de tenerlo encima, un detalle que no considere al empezar el post por creer que se formaría alejado de su centro ¿debería sumarle alguna variable a las funciones ya creadas o crear otra linea de código?.
Ya que lo he dejado así:
COLLISION obj_Jugador
[codigo]
///Creacion de las bolas
for(i=0; i<5; i++) //cantidad de bolas
{
id_bola=instance_create(obj_Jugador.x, obj_Jugador.y,obj_Bola_Orbital_Linea)
with(id_bola) {distancia=(x-obj_Jugador.x+48)*other.i} // distancia de las bolas
}
instance_destroy()
[/codigo]
Lo que explicaría el porque las distancias han sido separadas para parecer una linea de proyectiles mas que una barrera.
vale eso es porque no le estamos dando un valor a la y bien lo único que debes agregar es cambiar este codigo
Código [Seleccionar]
///Creacion de las bolas
for(i=0; i<5; i++) //cantidad de bolas
{
id_bola=instance_create(obj_player.x, obj_player.y,obj_orb)
with(id_bola) {distancia=(x-obj_player.x+20)*other.i} // distancia de las bolas
}
por este otro aunque parecen lo mismo agregamos una nueva variable de distancia entre la primera pelota y el jugador
Código [Seleccionar]
///Creacion de las bolas
for(i=0; i<9; i++) //cantidad de bolas
{
bola=instance_create(obj_player.x, obj_player.y,obj_orb)
with(bola) {distancia=(x-obj_player.x+20)*other.i+(y-obj_player.y+100)} // variable X y Y
}
donde
Código [Seleccionar]
(x-obj_player.x+20) // es la distancia entre cada bola
y
Código [Seleccionar]
(y-obj_player.y+100) // es la distancia entre la bola y el player
si lo haces bien te deberia quedar asi