Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Fenix oscuro en Diciembre 09, 2011, 12:33:50 AM

Título: Funciones enemigas(Resuelto)
Publicado por: Fenix oscuro en Diciembre 09, 2011, 12:33:50 AM
Estoy usando GM8.0 Lite y quisiera saber como hago para que las funciones del enemigo se activen al entrar en la view,y ya intente el deactivate,y otras funciones pero no funcionan,alguien puede ayudarme?

Edito:Tambien para desactivarlas cuando esten fuera de la view
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 12:59:47 AM
No lo probe, pero eso hace que si la instancia no esta en la view, se desactive.
[gml]
if !(x > view_xview + view_wview or x < view_xview) {instance_desactivate()}
if !(y > view_yview + view_hview or y < view_yview) {instance_desactivate()}
[/gml]
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Diciembre 09, 2011, 01:01:48 AM
Cita de: MaanuRP en Diciembre 09, 2011, 12:59:47 AM
No lo probe, pero eso hace que si la instancia no esta en la view, se desactive.
[gml]
if !(x > view_xview + view_wview or x < view_xview) {instance_desactivate()}
if !(y > view_yview + view_hview or y < view_yview) {instance_desactivate()}
[/gml]
Bueno(pero no le entendi ??)

Y para activarlo?
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 01:12:33 AM
[gml]
if x > view_xview + view_wview or x < view_xview {instance_activate()}
if y > view_yview + view_hview or y < view_yview {instance_activate()}
[/gml]

Revisa que las funciones esten bien escritas.
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Diciembre 09, 2011, 01:18:13 AM
Bueno pero esto va en el evento step?
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 02:01:03 AM
Claro, debe verificar en cada instante si la instancia esta o no en el view.
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Diciembre 09, 2011, 02:03:53 AM
Bueno voy a inentarlo

PD:si lo hecha a perder te aviso  XD
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 02:16:07 AM
Cita de: Fenix oscuro en Diciembre 09, 2011, 02:03:53 AM
Bueno voy a inentarlo

PD:si lo hecha a perder te aviso  XD

Dale dale, porque ahora me suena raro que un objeto desactivado se active, pero en mi juego lo hago funcionar asi :|

Pero cualquier cosa me dices y le encontramos la vuelta, no es complicado
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Diciembre 09, 2011, 02:24:26 AM
oye una super duda :-[
Como voy a saber si funciona si no lo puedo ver  XD
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 02:27:17 AM
Porque cuando entre en la view se van a activar todos sus eventos, mueve la view hacia ellos.
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Diciembre 09, 2011, 02:46:31 AM
ma?ana lo pruebo porque encontre un bug en el juego,perdon. :-[
Título: Re: Funciones enemigas
Publicado por: MaanuRP en Diciembre 09, 2011, 02:47:39 AM
Cita de: Fenix oscuro en Diciembre 09, 2011, 02:46:31 AM
ma?ana lo pruebo porque encontre un bug en el juego,perdon. :-[

No hay problema, pruebalo ^^
Título: Re: Funciones enemigas
Publicado por: Mgbu en Diciembre 09, 2011, 02:32:15 PM
No se si se puede activar cuando esta desactivada, mira en el manual esta exactamente lo que buscas:

CitarPor ejemplo, para desactivar todas las instancias fuera de la vista y activar las que est?n dentro podemos poner este c?digo en el evento step del personaje del jugador:

[gml] {
  instance_activate_all();
  instance_deactivate_region(view_xview[0],view_yview[0],
                        view_wview[0],view_hview[0],false,true);
}[/gml]

Normalmente es mejor usar una regi?n ligeramente mayor que la vista.
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Enero 10, 2012, 08:07:43 AM
bueno ya estoy utilizando los codigo pero ambos fallan D:
El Manu solo hizo desaparecer el object y el de Mgbu desactiva todo,y eso me provoca problemas a la hora de querer ver la barra de vida o entrar al menu,ya que uso como 4 o 5 objects para todo lo del jugador D:

Alguien que pueda ayudar?
Título: Re: Funciones enemigas
Publicado por: elviskelley en Enero 10, 2012, 02:00:48 PM
No necesariamente debera activarse las funciones en posicion corelativa a  la view, basta con que crees una variable que active todas las funciones y lo limites a una distancia del personaje principal de manera que se activaran las funciones enemigas cuando este ya las vea. (y esto asuminedo que el juego sea un plataformas) De no se un plataformas hay codigos muchos mejores... Pero como nom se el genero, solo estoy adivinando.

Un ejemplo-
Create event
active=false;
Luego en todos los event menos el create, usas esto antes

if active
{
//todos los codigos aca
}
if distance_to_object(player)< (view_width/2)
{active=true;}else{active=false}
Título: Re: Funciones enemigas
Publicado por: Fenix oscuro en Enero 10, 2012, 07:45:50 PM
Cita de: elviskelley en Enero 10, 2012, 02:00:48 PM
No necesariamente debera activarse las funciones en posicion corelativa a  la view, basta con que crees una variable que active todas las funciones y lo limites a una distancia del personaje principal de manera que se activaran las funciones enemigas cuando este ya las vea. (y esto asuminedo que el juego sea un plataformas) De no se un plataformas hay codigos muchos mejores... Pero como nom se el genero, solo estoy adivinando.

Un ejemplo-
Create event
active=false;
Luego en todos los event menos el create, usas esto antes

if active
{
//todos los codigos aca
}
if distance_to_object(player)< (view_width/2)
{active=true;}else{active=false}

Bueno de hecho ya lo habia resuelto asta las 4 am :P
este es el codigo que use:
[gml]if distance_to_object(player)<90
La funcion aqui[/gml]

y eso fue todo,se parece un poco al tuyo de hecho XD
pero este lo puse en step y quedo perfecto

Estoy haciendo un jefe resulta que si se acerca el personaje usa un ataque especial,y si se aleja dispara al jugador

asi esta ahora

[gml]if distance_to_object(player)<90
instance_change(objeto especial,true)


if distance_to_object(player)>90
sprite_index=sprite_disparo_derecha;image_index=0;image_speed=0.5[/gml]

El problema es que como hago que voltee a la derecha o izquierda dependiendo del lado en que este el jugador.
Título: Re: Funciones enemigas(otra duda,ayuda?)
Publicado por: NOKAUBURE en Enero 10, 2012, 10:38:59 PM
si el sprite del jefe mira a la derecha inicialmente:

[gml]if x > personaje.x {image_xscale = -1} else {image_xscale = 1}[/gml]

Te ahorra 1 sprite, ademas de ke es sencillo, solo se pone en evento step. Si el sprite mira a la izquierda inicialmente, cambia el -1 por 1 y el 1 por -1 xD
Título: Re: Funciones enemigas(otra duda,ayuda?)
Publicado por: Fenix oscuro en Enero 12, 2012, 08:24:07 AM
Me quedo perfecto gracias nokaubure,pero tengo una duda mas jejeje perdon pero no lo tomen como abuso :P,u otra cosa pero ando batallando con un codigo de angulos...

Actualmente lo tengo asi
[gml]if distance_to_object(player)
move_towards_player.x,player.y,12)
image_index=direction[/gml]
pero no se que le falta,es un misil de 8 sprites

PD:no lo he intentado usar pero pienso que tal vez no funcione D:
Título: Re: Funciones enemigas(ultima duda...)
Publicado por: Mgbu en Enero 15, 2012, 12:18:08 AM
Cita de: Fenix oscuro en Enero 12, 2012, 08:24:07 AM
Me quedo perfecto gracias nokaubure,pero tengo una duda mas jejeje perdon pero no lo tomen como abuso :P,u otra cosa pero ando batallando con un codigo de angulos...

Actualmente lo tengo asi
[gml]if distance_to_object(player)
move_towards_player.x,player.y,12)
image_index=direction[/gml]
pero no se que le falta,es un misil de 8 sprites

PD:no lo he intentado usar pero pienso que tal vez no funcione D:

Me meto pero no se si es que en vez de image_index es image_angle

A mi se me confunden a veces
image_index=la imagen del sprite para cuando es una animacion, es 0,1,2,3,etc
image_angle=angulo de la imagen, va de 0 a 359 si no me equivoco
sprite_index=es el sprite, por el spr_avion, spr_casa,etc
Título: Re: Funciones enemigas(ultima duda...)
Publicado por: Fenix oscuro en Enero 29, 2012, 12:28:04 PM
Gracias por la ayuda...cambio este tema a resuelto!!
y lo guardo para los credito :P

PD:No me lo borren D: