Bueno he tratado de hacer un Top Down Shooter sin necesidad para poner a prueba un poco de mis conocimientos, he echo esto para que dispare pero no se como hacer en las direcciones que vaya con el mouse

obj_gun

if(mouse_check_button_pressed(mb_left)){
    instance_create(mouse_x,mouse_y,obj_bala)
}


no se como hacer en el evento bala me darian un codigo explicandome como se hace?
gracias.

Prueba esto:

if(mouse_check_button_pressed(mb_left)){
   var dir = point_direction(x, y, mouse_x, mouse_y)
    bala = instance_create(mouse_x,mouse_y,obj_bala)
    bala.direction = dir
}



Cita de: penumbra en Noviembre 15, 2014, 12:28:21 AM
Prueba esto:

if(mouse_check_button_pressed(mb_left)){
   var dir = point_direction(x, y, mouse_x, mouse_y)
    bala = instance_create(mouse_x,mouse_y,obj_bala)
    bala.direction = dir
}


No me sirve, me da error.


la variable bala debe declararse en CREATE o como variable var, y en lugar de esto
[gml]instance_create(mouse_x,mouse_y,obj_bala)[/gml]

se debe usar esto:
[gml]instance_create(x, y, obj_bala)[/gml]

bala.direction = dir

me da error alli en esa linea, ya intente lo que me dijistes y me da lo mismo, alguna solucion?

Yo lo he probado y funciona:

[gml]
if(mouse_check_button_pressed(mb_left))
{
   var dir = point_direction(x, y, mouse_x, mouse_y)
   var bala;
    bala = instance_create(x, y, obj_bala)
    bala.direction = dir

}[/gml]

Mmmm no se por que, pero en el anterior script me creaba la instance solamente y en el mouse ahora me crea la instance edonde esta el personaje sin hacer ningun movimiento, alguna solucion denuevo?

si quieres que la bala se cree donde está el mouse, cambia entonces las coordenadas por mouse_x y mouse_y en instance_create

No funka el script de ninguna forma, ya tengo que dar por perdida la idea.

if(mouse_check_button_pressed(mb_left))
{
   var dir = point_direction(x, y, mouse_x, mouse_y)
   var bala;
    bala = instance_create(x, y, obj_bala)
    bala.direction = dir
    bala.speed=12
}


Así es