Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: ¿Como creo un enemigo tipo dron y que este solamente gire el arma?  (Leído 938 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado royer11

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:


 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #1 en: Octubre 10, 2017, 04:06:25 pm
Explícate mejor.

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado royer11

Respuesta #2 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?

 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #3 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

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 
Los siguientes usuarios dieron las gracias a este tema: royer11


Desconectado anael

Respuesta #4 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
« última modificación: Octubre 10, 2017, 05:46:34 pm por anael »

 
Los siguientes usuarios dieron las gracias a este tema: royer11


Desconectado royer11

Respuesta #5 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?

 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #6 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;

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 
Los siguientes usuarios dieron las gracias a este tema: royer11


Desconectado royer11

Respuesta #7 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












 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #8 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?

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado royer11

Respuesta #9 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

 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #10 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.

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado royer11

Respuesta #11 en: Octubre 11, 2017, 11:31:32 pm
primero creo un evento create, dentro de el agrego, start moving in a direction;
   

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


con respecto a las colisiones, solamente he escrito este codigo

// solido y la direccion

move_contact_solid(direction,12) vspeed = 0;




 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #12 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í.
« última modificación: Octubre 11, 2017, 11:49:32 pm por NiuWeb »

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM
 


Desconectado royer11

Respuesta #13 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;
}

 


Desconectado NiuWeb

  • Flota de Justicia Particular.
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 2825
  • Mensajes: 1.697
  • Agradecido: 141 veces
  • Sexo: Masculino
  • Rock anthem for saving the world.
    • Ver Perfil
Respuesta #14 en: Octubre 12, 2017, 12:10:34 am
¿es pregunta?  XD

El tiempo era tu aliado, humano, pero te ha abandonado.
Los Forerunners han regresado, esta tumba ahora es tuya.

-Ur-Didacta.


BA:STFW&RTFM