Buenas, necesito ayuda, ya que estoy intentando hacer que cuando presiono la X el jugador dispare, pero me perdí, bien, mi código de momento va así:
Citarif !instance_exists(bala) {
    bala = instance_create(x,y,bala_jugador);
}
Bien, supongo que por ahora voy bien, pero no sé como hacer para mover a 'bala' hasta dónde yo quiero.
Me explico un poco mejor: Lo que yo quiero hacer, es que la bala se mueva hasta que impacte a determinado objeto.
¿Me podrían ayudar por favor?
Desde ya muchas gracias.

if !instance_exists(bala)//si la bala no existe
{
    instance_create(x,y,bala_jugador);// la creamos
}


Ahora sobre la bala a que direccion quieres implementarla.
Saludos

Simple, a la bala le das una velocidad y cuando colisione con otro objeto la destruis
CREATE
speed=10  ///velocidad
direction=0
  ///direccion
COLISION
instance_destroy()

#3 Marzo 30, 2015, 02:29:55 PM Ultima modificación: Marzo 31, 2015, 06:28:45 PM por elviskelley
modificar tu codigo y desde el mismo object y event.

if !instance_exists(bala)
{
bala = instance_create(x,y,bala_jugador);

with(bala) {colocas para la derecha hspeed=10; para la izquierda hspeed-=10;}

}

Explicación: Al crear un object llamado sobre una variable (bala) esa variable almacena la id de la instancia recién creado (bala_jugador), teniendo la id de esa instancia (bala_jugador) usamos una sentencia with  para indicar que el siguiente código afecte a la instancia señalada entre sus paréntesis (bala) luego entre llaves ( {...} ) colocas las acciones que afectaran a esa instancia (la de la ID guardada en bala)
Atentamente.-
Elvis Kelley
Mi Manual.
Mi canal de Youtube Youtube click aqui
Video tutoriales Game maker

#4 Marzo 30, 2015, 05:05:15 PM Ultima modificación: Marzo 30, 2015, 05:13:26 PM por Alex_Wallace
Me estoy confundiendo, por qué ese código está en el objeto del jugador, si hago eso, ¿no estaría moviendo al jugador?

EDIT: Intento probar el código en el juego y me da "Fatal Error" :/

El código va en el objeto jugador, puesto que es desde allí ,donde queremos que se cree.

El codigo vá así:

[GML]
if !instance_exists(bala_jugador)  // Si no existe el disparo o que es lo mismo, el objeto "bala_jugador"...
{

disparo= instance_create(x,y,bala_jugador); //entonces creamos un disparo y almacenamos el ID del objeto para luego hacer referencia a este.

with(disparo) // Aqui al utilizar "with(bala)" hacemos que el siguiente código entre llaves se ejecute para el disparo creado anteriormente.
{
hspeed =10; // hacemos que dicho disparo se mueva
}//Aqui se cierran las llaves, por lo que cualquier código siguiente no valdrá para el disparo sino para el jugador.

[/GML]

#6 Marzo 30, 2015, 06:20:27 PM Ultima modificación: Marzo 30, 2015, 06:27:58 PM por king195
Evento Create de la bala

a_bala = true;
spd=5;


Evento Step de la bala

if(a_bala==true){
if(mouse_check_button(mb_left)){
instance_create(obj_jugador.x,obj_jugador.y,obj_bala);
a_bala = false;
alarm[0] = room_speed * 0.5;

}

}


Evento Alarm[0] en la misma bala

a_bala = true;


La otra es que en vez de darle directamente las coordenadas como hice yo en el evento Step lo hagas con un With y te ahorras tener que poner el obj_Bala en la habitacion ya que se crea a partir del mismo personaje.