Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: royer11 en Octubre 10, 2017, 03:55:49 pm

Título: ¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 10, 2017, 03:55:49 pm
tengo un problemilla, es que se trata sobre como hago que solamente el arma del dron gire, abajo dejo mi proyecto, y tambien me gustaria saber como hago que el dron se mueva de un lugar a otro. Espero su ayuda, llevo muco tiempo y aun no encuentro la forma. uso el game maker studio :GMS:

(http://www.mediafire.com/convkey/ac3e/ea9rh46r4gbpgqrzg.jpg?size_id=6)
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 10, 2017, 04:06:25 pm
Explícate mejor.
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 10, 2017, 04:26:42 pm
Explícate mejor.
Como sabes los drones vuelan, pero tengo un circulo y ha ese circulo le llamo arma, solamente quiero que esa parte llamado arma --> gire , claro que la direccion es hacia el personaje, pero si has visto el proyecto que dejo para que lo pruebes, te daras cuenta de que el dron gira completamente y a parte de eso no se siente que fuera un dron simulado "de verdad".. Me encuentro en cero, el script lo encontre en otra publicación, puedes decirme como lo hago?
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 10, 2017, 04:47:32 pm
Explícate mejor.
Como sabes los drones vuelan, pero tengo un circulo y ha ese circulo le llamo arma, solamente quiero que esa parte llamado arma --> gire , claro que la direccion es hacia el personaje, pero si has visto el proyecto que dejo para que lo pruebes, te daras cuenta de que el dron gira completamente y a parte de eso no se siente que fuera un dron simulado "de verdad".. Me encuentro en cero, el script lo encontre en otra publicación, puedes decirme como lo hago?
El proyecto está dañado.
Aún así, te hice un ejemplo muy básico.

Para hacer cosas más complicadas, te recomiendo que estudies algo acerca de las funciones vectoriales y trigonométricas.
http://docs-gamemaker-es.blogspot.com.co/p/funciones-vectoriales.html
http://docs-gamemaker-es.blogspot.com.co/p/funciones-de-numeros-reales.html#trigonometria
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: anael en Octubre 10, 2017, 05:24:03 pm
lo mas simple que se me ocurre es que
En el eventro CREATE:
rotDron=0;//Declare esta variable

En el Evento DRAW:
//Dibujas el Dron
draw_sprite_ext(sprDron,0,x,y,1,1,rotDron,c_white,1);
//Dibujas la Arma
var rot=point_direction(x,y+16,mouse_x,mouse_y);//parte de la posicion del arma y hace la rotacion
draw_sprite_ext(sprDronArma,0,x,y+16,1,1,rot,c_white,1);//Aqui dibuja el arma mas la rotacion

//Yyy para el movimiento pones este codigo ya sea en draw o en steep

if keyboard_check(ord("A")){ if rotDron>-15{rotDron-=0.25;} }else
if keyboard_check(ord("D")){ if rotDron<15 {rotDron+=0.25;} }else{
if rotDron>1{rotDron-=0.5;}else if rotDron<1{rotDron-=0.5;}else{rotDron=0;}}//Esto sirve para estabilisar el dron

y pues nada suerte
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 11, 2017, 06:33:29 am
Muchas gracias por tu respuesta, lo voy a intentar hacer, y tengo una duda, como creo un enemigo que me persiga y al estar cerca cambie sprite "ejemplo atake", y cuando el personaje se aleja cambie el sprite a caminar o correr, puedes darme algun ejemplo?
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 11, 2017, 04:51:11 pm
////Evento step del enemigo
if(distance_to_object(oJugador) < 100) //por ejemplo
    sprite_index = atacando;
else
    sprite_index = caminando;
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 11, 2017, 10:35:55 pm
////Evento step del enemigo
if(distance_to_object(oJugador) < 100) //por ejemplo
    sprite_index = atacando;
else
    sprite_index = caminando;

si el enemigo tiene sprite caminando hacia la derecha e izquierda , pienso en agregar

 if sprite_index = caminando_derecha
           sprite_index = atacar_derecha;
      if  sprite_index = caminando_izquierda
         sprite_index = atacar_izquierda  

puedes hacerme un tuto desde cero, como crear enemigo que persiga al jugador y este se pare para atacar y cuando se aleja el jugador el enemigo lo siga;
puedes ayudarme amigo mio, estoy metido en esto y mi objeto enemigo no cambia de sprite, pero si se detiene, ayudame, no entiendo tanto el buen funcionamiento











Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 11, 2017, 10:59:49 pm
Da más información de tu enemigo y tu juego. ¿Cómo se mueve el enemigo? ¿Es un juego de plataformas? ¿El enemigo va "por el suelo", o sea, se ve afectado por la gravedad y debe tener en cuenta los bloques sólidos, o sólo va de izquierda a derecha ignorando todo lo anterior?
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 11, 2017, 11:07:14 pm
tienes toda la raazon, la emocion no me hace especificarme, en fin ..

es un juego de zombie, debe ser similar a mario, entonces es de plataformas, el enemigo va por el suelo y es afectado por la gravedad, teniendo encuenta los bloques, tambien va ha ser afectado, espero que lo entiendas, y mucha gracias por responder
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 11, 2017, 11:14:05 pm
tienes toda la raazon, la emocion no me hace especificarme, en fin ..

es un juego de zombie, debe ser similar a mario, entonces es de plataformas, el enemigo va por el suelo y es afectado por la gravedad, teniendo encuenta los bloques, tambien va ha ser afectado, espero que lo entiendas, y mucha gracias por responder
Mejor. Ahora, ¿puedo ver el código con el que mueves al enemigo? Hay varias formas de hacer lo que buscas, y sin conocer el código actual tal vez te dé soluciones muy complicadas o que te hagan cambiar todo el código.
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 11, 2017, 11:31:32 pm
primero creo un evento create, dentro de el agrego, start moving in a direction;
   (http://www.mediafire.com/convkey/004f/k2ljbjl6gb1514d7g.jpg)

estando dentro del evento create he añadido este codigo
//cambio de sprite de inzquieda a derecha
if hspeed <= 0
   {
     sprite_index = spr_enemy1_left ;
     image_speed = 0.5
   
   }
   if hspeed >= 0  {
   
      sprite_index = spr_enemy1_right;
      image_speed = 0.5
     }
     

ahora dentro del evento step, he puesto la gravedad
(http://www.mediafire.com/convkey/06e9/brk1ssp88r2b1377g.jpg)

con respecto a las colisiones, solamente he escrito este codigo

// solido y la direccion

move_contact_solid(direction,12) vspeed = 0;



Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 11, 2017, 11:47:22 pm
Agrega esto en el evento step:
var donde = sign(oPlayer.x - x); //oPlayer es el nombre del jugador
if(donde <> 0)
{
    hspeed = 1.3 * donde;
    if(donde == 1)
        sprite_index = sAtacando_derecha;
    else
        sprite_index = sAtacando_izquierda;
}
EDIT: Había un error, lo corregí.
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 12, 2017, 12:04:29 am
esta genial el codigo, para que solamente cambie el sprite cuando se encuentra a tal distancia y que la velocidad este en cero, o sea que el enemigo se pare "no tenga velocidad" y ahi es donde cambie sprite de ataque, habia visto el codigo --

 if distance_to_object(oPlayer) <= 26 
{
    // ¿es speed o es  hspeed?
            speed = 0;

    if sprite_index =  scAminando_derecha
       sprite_index = sAtacando_derecha;

 if sprite_index =  scAminando_izquierda
       sprite_index = sAtacando_izquierda;

}
else
{
// ¿es speed o es  hspeed?
speed = 1.3



 if sprite_index =   sAtacando_derecha
       sprite_index = scAminando_derecha   ;

 if sprite_index =   sAtacando_izquierda
       sprite_index = scAminando_izquierda;
}
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 12, 2017, 12:10:34 am
¿es pregunta?  XD
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 12, 2017, 12:12:17 am
 :-[  si, en esa parte es donde tengo dificultades, el sprite no cambia y solamente se que queda estatico y con el sprite de caminando
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 12, 2017, 12:19:10 am
Vale, xD. Cuando el enemigo esté a X distancia del jugador, le detenemos y hacemos que cambie al sprite de ataque en la dirección en que esté, ¿verdad?
var donde = oPlayer.x - x; //Calculamos la distancia horizontal entre el player y el enemigo
//oPlayer es el nombre del jugador
if(abs(donde) >= 26) //Si la distancia es menor que 26
{
    donde = sign(donde); //Obtenemos la dirección en la que debe mirar (1: derecha, -1: izquierda)
    hspeed = 0; //Detenemos al enemigo
    if(donde == 1) //Si debe mirar a la derecha
        sprite_index = sAtacando_derecha; //Mira a la derecha
    else //De lo contrario
        sprite_index = sAtacando_izquierda; //Mira a la izquierda
}
else //De lo contrario
{
    hspeed = choose(-1.3, 1.3); //Andar a la derecha o a la izquierda aleatoriamente.
}
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 12, 2017, 12:52:13 am
el codigo funciona, cuando comienzo el juego, el enemigo ya esta con el sprite de atake "he tratado de cambiar los valores de distancia ", ahora cuando el jugador esta a la derecha del personaje, cambia el sprite del enemigo a caminar y el problema es que no se mueve "esta estático",

--> si el obj del personaje "jugador" esta a la izquierda del enemigo, este enemigo esta estático con el sprite de atake y ahora cuando muevo al personaje unos 3 pasos mas del enemigo,ahora el enemigo cambia repentinamente de sprite a caminar pero como dije, esta estático.
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 12, 2017, 01:00:42 am
xDXdXd, ¡ando medio dormido! Lo siento, fue mi error.
var donde = oPlayer.x - x; //Calculamos la distancia horizontal entre el player y el enemigo
//oPlayer es el nombre del jugador
if(abs(donde) <= 26) //Si la distancia es menor que 26 (ÉSTE ERA EL PRIMER ERROR)
{
    donde = sign(donde); //Obtenemos la dirección en la que debe mirar (1: derecha, -1: izquierda)
    hspeed = 0; //Detenemos al enemigo
    if(donde == 1) //Si debe mirar a la derecha
        sprite_index = sAtacando_derecha; //Mira a la derecha
    else //De lo contrario
        sprite_index = sAtacando_izquierda; //Mira a la izquierda
}
else //De lo contrario
{
    hspeed = choose(-1.3, 1.3); //Andar a la derecha o a la izquierda aleatoriamente.
    if(sign(hspeed) == 1) //FALTABA ESTO PARA REGRESAR AL SPRITE DE CAMINAR
        sprite_index = sCaminando_derecha;
    else
        sprite_index = sCaminando_izquierda;
}
A ver si ésta si sirve, xD.
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 12, 2017, 01:10:04 am
eres un crack, mil disculpas por haberte entretenido, bueno el enemigo funciona, ahora cuando me acerco cambia de sprite al modo atake, solamente que
hspeed = choose(-1.3, 1.3
, creo que hace que se mueva sin una direccion fija , quiero decir que cambia sprite de izquierda a derecha y no tiene direccion, no avanza
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: NiuWeb en Octubre 12, 2017, 01:18:52 am
var donde = oPlayer.x - x; //Calculamos la distancia horizontal entre el player y el enemigo
//oPlayer es el nombre del jugador
if(abs(donde) <= 26) //Si la distancia es menor que 26 (ÉSTE ERA EL PRIMER ERROR)
{
    donde = sign(donde); //Obtenemos la dirección en la que debe mirar (1: derecha, -1: izquierda)
    hspeed = 0; //Detenemos al enemigo
    if(donde == 1) //Si debe mirar a la derecha
        sprite_index = sAtacando_derecha; //Mira a la derecha
    else //De lo contrario
        sprite_index = sAtacando_izquierda; //Mira a la izquierda
}
else //De lo contrario
{
    if(hspeed == 0)
    {
        hspeed = choose(-1.3, 1.3); //Andar a la derecha o a la izquierda aleatoriamente.
        if(sign(hspeed) == 1) //FALTABA ESTO PARA REGRESAR AL SPRITE DE CAMINAR
            sprite_index = sCaminando_derecha;
        else
            sprite_index = sCaminando_izquierda;
    }
}
Título: Re:¿Como creo un enemigo tipo dron y que este solamente gire el arma?
Publicado por: royer11 en Octubre 12, 2017, 01:25:24 am
 :D :D :D :D :D 

muchas gracias  NiuWeb    , me encuentro realmente agradecido, ahora esta perfecto, muchas gracias nuevamente