//Disparo
if(keyboard_check(ord("C"))) && canshoot = 1{
canshoot = 0;
instance_create(x,y,obj_bala)
alarm[0] = 10;
bala.speed = 5;
}
Yo quiero hacer que cree la instancia dependiendo de el angulo de la imagen
Intenta esto:
w=instance_create(x,y,bala)
w.speed=5
w.direction=image_angle
Oye que significa eso, cuando no habia puesto lo de instance_create que tu pusistes, las balas iban a la direccion a la ultima bala que hice y funciono por eso pregunto, que significa eso de
bala.instance_create(x,y,obj_bala);
traducemelo ahi t.t
Hola
Cita de: vitail en Diciembre 18, 2014, 12:46:29 AM
Oye que significa eso, cuando no habia puesto lo de instance_create que tu pusistes, las balas iban a la direccion a la ultima bala que hice y funciono por eso pregunto, que significa eso de
bala.instance_create(x,y,obj_bala);
traducemelo ahi t.t
Supondre que dices
bala = instance_create(x,y,obj_bala);
pues teóricamente es tomar la instancia creada en una variable y para luego manipularla.
la gracia esta en que, cuando realizamos el operador "." sobre aquella variable, podemos acceder a sus variables internas.
un ejemplo
-> tenemos un objeto (ob_algo), sabemos que dispone de variables por defecto; vspeed, x, y, etc.
-> editamos por medio código (en alguna parte) y "Creamos" una nueva instancia a partir del ob_algo
instance_create(10,10,ob_algo)
pero, no podemos manipular la instancia, sino que se crea y funciona por como este definida. Entonces lo "adjuntamos" en una variable
variable = instance_create(10,10,ob_algo)
Aquí, ya disponemos de la posibilidad de "acceder" a sus variables internas por medio del operador "."
variable = instance_create(10,10,ob_algo);
variable.x = 100;
Lo anterior nos dice que a pesar de haber sido creado en la posición "x" en 10, inmediatamente después fue modificado su valor a 100, en tanto aparecerá en la posición (100,10) y no (10,10), o sea modificamos una variable interna de la "instancia" creada a partir del "objeto" ob_algo, usando la variable "variable" del ejemplo (puede tomar cualquier nombre con tal que no tenga conflicto con las palabras reservadas)
en tanto el código de Marth
Cita de: Marth en Diciembre 18, 2014, 12:12:10 AM
Intenta esto:
w=instance_create(x,y,bala)
w.speed=5
w.direction=image_angle
Nos dice que al momento de ser creada una instancia a partir del objeto "bala" en la variable "w" le modificamos la velocidad (speed) con valor de 5 y su dirección (direction) con valor a la dirección del Angulo de imagen del "padre" (image_angle), le llamo padre ya que fue creada a partir de la instancia que contiene el codigo.
Espero se entienda.
el código
bala.instance_create(x,y,obj_bala);
a priori, no tiene mucho sentido, ya que instance_create() es una función general y no una variable interna. No se si en este lenguaje (gml) es posible acceder a funciones internas de los objetos ¿tiene funciones internas predefinidas, no lo he visto en este lenguaje?, aunque en muchos otros lenguajes prácticamente todo es accesos de variables y funciones en los objetos.
si llegase a funcionar, solo crearía una instancia.
Saludos
Ok, ya nadamas me falta como hacer que tambien la bala tenga el angulo y no se como, me las ingeniare :'( :'(
Cita de: vitail en Diciembre 18, 2014, 11:41:44 PM
Ok, ya nadamas me falta como hacer que tambien la bala tenga el angulo y no se como, me las ingeniare :'( :'(
Espero este código sirva
en el objeto bala en el evento créate pon esto
image_angle=point_direction(jugador.x,jugador.y,x,y)
en el create del objeto bala image_angle=direction
si, ya lo habia arreglado ;D