Como hago que un enemigo me siga, y que me apunte, osea que si yo estoy en el piso me dispare ai y que cuando yo estoy saltando tambien me dispare donde yo estoy saltando.
que la bala me siga. pero que se pueda esquivar

#1 Octubre 03, 2010, 05:18:02 AM Ultima modificación: Octubre 03, 2010, 05:19:52 AM por brunoxzx
en el evento create
[gml]tiempo=15[/gml]

esto va en step
[gml]var a;
a=0
tiempo+=1

if distance_to_object(personaje_principal)<150 //si quieres cambia la distancia
{ if tiempo=>15{a=instance_create(x,y,obj_bala);
a.direction= point_direction(x,y,personaje_principa.x,personaje_principal.y) a.speed=8 tiempo=0}
if distance_to_object(personaje_principal)>20{
if personajeprincipal.x>x{if place_free(x+2,y){x+=2} else{vspeed=-4}}
if personajeprincipal.x<x{if place_free(x-2,y){x-=2} else{vspeed=-4}}
}}
[/gml]

no tienes que poner nada en el objeto que es la bala

#2 Octubre 03, 2010, 11:07:36 PM Ultima modificación: Octubre 03, 2010, 11:15:05 PM por ardilla321
entonces como dispara?
ahora lo pruebo (:
EDITO!
el personaje si dispara, pero me sigue sin parar . ademas hay un momemtno en que desaparece.
ademas me detectaba un error en el codigo y tuve que cambiar un cosa (el signo <)
Edito!
se me olvido adjuntar el archivo

donde dice instance_create(x,y,obj_bala)

Si, no me habia fijado en ese detalle de la bala  :-[
el problema es que todavia tiene errores  :'( trate de cambiar el codgio pero no , nopude

Los enemigos desaparecen por una razon muy tonta y valida,
las mismas balas q crean pueden destruirlos a ellos, se matan solos!!! xDDDD
te recomiendo hacer otro obj por ejemplo
obj_beam_enemy para las balas de los enemigos! si son distintas a las balas del player mejor, ya q en la jugabilidad seria raro ver las mismas balas por todos lados, normalmente el player tiene distintas las balas
otra cosa pusiste tiempo =<15 tenes q poner tiempo<15 no =
espero te sirva :)


#6 Octubre 03, 2010, 11:38:20 PM Ultima modificación: Octubre 03, 2010, 11:51:33 PM por ardilla321
Whahahahahah ! no lo habia pensado ! xDDD! ahora lo arreglo...  :-[
ERROR in
action number 1
of  Step Event
for object obj_arm:

Error in code at line 1:
   if mouse_x>obj_soldier.x {x=obj_soldier.x+1} else {x=obj_soldier.x-1}
                         ^
at position 24: Unknown variable x
Solucionado el problema
tengo otro ahora
como hago que me "detecten" y luego me disparen, por que cuando comienza el juego ya me estan disparando entonces muero altiro.
y ade3mas como hago que este en una distanca mayor al personaje.

Ok!! ^^ cualquier cosa te contesto en menos de un segundo xD


Ayuuda!
Solucionado el problema
tengo otro ahora
como hago que me "detecten" y luego me disparen, por que cuando comienza el juego ya me estan disparando entonces muero altiro.
y ade3mas como hago que este en una distanca mayor al personaje.

Para q esten mas lejos ponlos mas lejos en la room xDDDDDDD
para q los disparos sean mas lentos ps bajales la speed! asi te da tiempo a eskivar!
y para lo del enemigo te recomiendo leer este post:
http://www.comunidadgm.org/index.php?topic=10709.0


mira el errore que tengo, la bala se queda pegada (con el link que me dijiste tu gunsalito.

Muy facil amiguito, simplemente ve al objeto Beam_enemy pon un event create y pon un code que diga speed=(la velocidad que quieras)
con un 2 estaria bien :)


Citarvar a;
a=0
tiempo+=1

if distance_to_object(personaje_principal)<150 //si quieres cambia la distancia
{ if tiempo=>15{a=instance_create(x,y,obj_bala);
a.direction= point_direction(x,y,personaje_principa.x,personaje_principal.y) a.speed=8 tiempo=0}
if distance_to_object(personaje_principal)>20{
if personajeprincipal.x>x{if place_free(x+2,y){x+=2} else{vspeed=-4}}
if personajeprincipal.x<x{if place_free(x-2,y){x-=2} else{vspeed=-4}}
}}
y con el codigo que copie de burnox, donde pongo que la imagen se invierta cuadno obj_soldier este a la izquierda de obj_enemy.

#13 Octubre 04, 2010, 01:29:45 AM Ultima modificación: Octubre 04, 2010, 01:31:29 AM por Gunslito
lo mejor que podrias hacer (va para mi lo mas sencillo)
es usar variables
si el enemigo tiene tanta hspeed la variable enemydir (por ejemplo) cambie
un ejemplo facil seria:

if hspeed=4
change_sprite=enemy_right
else
change_sprite_enemy_left
(esto si tenes dos sprites SI NO USAS DOS SPRITES PARA IZQ O DERECHA
utiliza el codigo image_xscale= 1 (derecha) o -1 (izquierda)
eso hace q transforme tu sprite a tal direccion.

con variables seria algo asi

if hspeed=4
enemydir = 1
else
enemydir = 0

-----
if enemydir = 1
(aqui el sprite
y/o el image_xscale
else
(aqui el sprite
y/o el imagex_scale del otro angulo


es para solo una sprite , entonces es mejor usar image_xscale = 1 y image_xscale = -1 (creo que era 1 y -1) pero no se donde debo ponerlo en el codigo que puse antes :S