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!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - TGWE EL PINCHE FURRO

Páginas: 1
1
Preguntas y respuestas / Re:Necesito Editables (Megaman Zero)
« en: Diciembre 17, 2018, 04:20:58 am »
Hay varios packs de sprites y musica pero tambien hay algunos ejemplos de plataforma de megaman.
Los siguientes usuarios dieron las gracias a este tema: TGWE EL PINCHE FURRO

2
Preguntas y respuestas / Re:Necesito Editables (Megaman Zero)
« en: Diciembre 16, 2018, 05:19:19 pm »
Echale una revisada a la sección de descargas, seguro hay algún engine como el que buscas.

Voy a mover el post a la sección correcta,y pues bienvenido a esta, tu Comunidad GM
Los siguientes usuarios dieron las gracias a este tema: TGWE EL PINCHE FURRO

3
Preguntas y respuestas / Inteligencia Artificial Avanzada
« en: Noviembre 19, 2013, 06:10:37 pm »
Muy buenas, makeros.
En este nuevo tema que hago me gustaria pediros una gran ayuda con la IA de mi juego.

Empezare explicar de que va mi proyecto para que podáis pillar la idea que tengo yo en mente.

    Basicamente es un juego TDS(Top Down Shooter), sin embargo tiene parte de RPG, asta ahora aun no tenemos hecha la historia pero yo, que soy el programador de nuestro equipo, necesito tener algunas cosas preparadas para cuando empecemos a desarrollar el juego, sepa el funcionamiento de todo lo que incluye.
    Como dije es un TDS y los controles son con "W", "S" y con el raton. Con "W" se mueve el personaje hacia la posición del ratón y con la "S", Se aleja de el.
    Como en todo Shooter deben de haber enemigos, en este también habrán y seguramente sean mas que muchos. Por ahora estoy tratando de hacer un patrón básico de IA para los enemigos que disparen, para así, poder copiar y pegarlo en todos los enemigos que usen arma de rango y modificarlo a mi gusto. Para los enemigos que solo atacan cuerpo a cuerpo supongo que sera muy parecido así que teniendo uno creo que que me las apañare yo solo.

    Por ahora tengo hecho esto de acá:
obj_enemy
CREATE EVENT:
Código: [Seleccionar]
canshoot = 0;
hp = 100;
alert = 0;

STEP EVENT:
Código: [Seleccionar]
canshoot -=1;
if (collision_line(x,y,obj_Player.x,obj_Player.y,obj_wall,true,true)<0)&&(distance_to_object(obj_Player)<=200){
    alert += 10;
    if (alert >= 1000){alert = 1000;}
    if (alert >= 300) && (alert <= 1000){
        if canshoot < 0{
            canshoot = 20;
            instance_create(x,y,obj_bullet_enemy);
        }
    }
   
}
if (distance_to_object(obj_Player)> 0)&&(alert >=300 && alert <=1000 ){
    if (point_distance(x,y,obj_Player.x,obj_Player.y) <= 32){ exit; }
    if not(collision_rectangle((x+cos(degtorad(direction)))+14,y-14,(x+cos(degtorad(direction)))-14,y+14,obj_wall,0,0)){
        x +=cos(degtorad(direction))
    }
    if not(collision_rectangle(x-14,(y-sin(degtorad(direction)))+14,x+14,(y-sin(degtorad(direction)))-14,obj_wall,0,0)){
        y -=sin(degtorad(direction))
    }
    image_angle = direction;
}
       
       
if not (collision_line(x,y,obj_Player.x,obj_Player.y,obj_wall,true,true)<0){alert -=5;}
END STEP EVENT:
Código: [Seleccionar]
direction = point_direction(x,y,obj_Player.x,obj_Player.y);
COLLISSION EVENT (obj_bullet_P_dream)(Bala de la torreta que tambien funciona mal pero eso intentare arreglarlo yo solo jeje)
Código: [Seleccionar]
if (hp >> 0)&&(hp <= 100){
    hp -=5;
}else{
    instance_destroy();
}

Este ultimo lo pongo por si alguien sabe alguna manera de ahorrar código, pero no afecta en absoluto en el funcionamiento de la IA por ahora.

Bien este fue el objeto enemigo, ahora pasemos al objeto jugador (obj_Player):
STEP EVENT:
Código: [Seleccionar]
if (keyboard_check(ord('W'))){
    if (point_distance(x,y,mouse_x,mouse_y) <= 32){ exit; }
    if not(collision_rectangle((x+cos(degtorad(direction))*3)+14,y-14,(x+cos(degtorad(direction))*3)-14,y+14,obj_wall,0,0)){
        x +=cos(degtorad(direction))*3;
    }
    if not(collision_rectangle(x-14,(y-sin(degtorad(direction))*3)+14,x+14,(y-sin(degtorad(direction))*3)-14,obj_wall,0,0)){
        y -=sin(degtorad(direction))*3;
    }
}
if (keyboard_check(ord('S'))){
    if not(collision_rectangle((x-cos(degtorad(direction))*3)+14,y-14,(x-cos(degtorad(direction))*3)-14,y+14,obj_wall,0,0)){
        x -=cos(degtorad(direction))*3;
    }
    if not(collision_rectangle(x-14,(y+sin(degtorad(direction))*3)+14,x+14,(y+sin(degtorad(direction))*3)-14,obj_wall,0,0)){
        y +=sin(degtorad(direction))*3;
    }
}

END STEP EVENT:
Código: [Seleccionar]
direction = point_direction(x,y,mouse_x,mouse_y);
image_angle = direction;

Objeto muro (obj_wall):
simplemente es solido y no tiene ningún evento


    Bueno estos fueron los códigos que de alguna manera influyen en la IA del enemigo. Ahora al problema que tengo:
El problema es el siguente, cuando el enemigo me ve, la variable alert empieza a subir asta llegar a 1000, que es, cuando el enemigo se da cuenta de que me tiene que disparar y seguir. Si el enemigo no me ve empezara a bajar la variable alert y cuando esta llega a 300 el enemigo deja de seguirme. Asta aquí, bien, todo funciona correctamente. Lo que pasa es que el enemigo al seguirme se estanca en las paredes y no tiene la capacidad de rodearlas e ir en la dirección en la que se fue el personaje. Dicho esto, necesito que alguien me de una solución o algún consejo que me pueda ayudar con este problema. Aparte de que necesito que el enemigo rodee las paredes, necesito que no las toque mientras sigue al personaje, cosa que no veo manera de hacerla. Intente pararme a pensar unos días e ir probando pero es algo que no conseguí. Si hay que cambiar todo el código, bien, pero necesito una solución y espero que haya gente que sepa ayudarme con este problema.

Dejare un GMZ Para que puedan ver lo que les quiero decir :)

Gracias de antemano, y me despido :)
Salu2
Los siguientes usuarios dieron las gracias a este tema: TGWE EL PINCHE FURRO

Páginas: 1