//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
Fracasar no significa un fin sino un comienzo

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)