Noticias

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

* Sponsor

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: Bufanda con "fisicas"  (Leído 496 veces)

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

Desconectado cristopher2545

en: Julio 22, 2021, 07:34:57 am
Hola a todos!

estaba practicando un poco con las físicas que trae game marker con la finalidad de crear una bufanda que esta pegada al jugador y que tenga gravedad para interactuar con el entorno, no me gusta la idea de que el juego tenga físicas solo por una cosa tan sencilla, hay alguna forma de replicar un efecto parecido con objetos?

por ejemplo que se cree 6 objetos unidos entre si los cuales tengan gravedad y sigan conectados entre si, que modifiquen su angulo dependiendo de el estado en el que se encuentren, exactamente lo que pasa cuando creas una cuerda con fisicas. cual seria la manera mas sencilla de tener algo parecido

de antemano gracias!

Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Clamud

Respuesta #1 en: Julio 22, 2021, 04:10:49 pm
Se puede usar el sistema de física de GMS. La idea es crear una cadena de segmentos cortos y cubrir con un sprite que se "deforma".

En este artículo se muestran un script para dibujar sprites que parecen flexibles.
https://zackbellgames.com/2014/11/11/sprite-skewing-for-procedural-animation/

Aquí hay ejemplos de plataformeros que usan el sistema de física (del mismo autor)
https://marketplace.yoyogames.com/publishers/303/zbg

 
Los siguientes usuarios dieron las gracias a este tema: cristopher2545


Desconectado cristopher2545

Respuesta #2 en: Julio 22, 2021, 04:24:26 pm
oh ya había visto algo parecido y pensé en usar fisicas pero hay un problema, seguí un tutorial y todo bastante bien, pero la cuerda es demasiado "elástica" se estira demasiado al moverla no se si eso sea algo normal pero me gustaría que sea un poco mas "firme" comprendo debes limitar la tensión pero honestamente es algo que no entiendo dejo el código que usaba

create del objeto spawner
offset_y = 0;
host = self;
next_rope = instance_create(x, y + offset_y, obj_Rope);

attach = physics_joint_distance_create(host, next_rope, host.x, host.y, next_rope.x, next_rope.y, false);;
physics_joint_set_value(attach, phy_joint_damping_ratio, 1);
physics_joint_set_value(attach, phy_joint_frequency, 10);

with(next_rope){
    parent = other.id;
}

repeat (30){

    offset_y += 1;
    last_rope = next_rope;
    next_rope = instance_create(x, y + offset_y, obj_Rope);
   
    link = physics_joint_distance_create(last_rope, next_rope, last_rope.x, last_rope.y, next_rope.x, next_rope.y, false);
    physics_joint_set_value(link, phy_joint_damping_ratio, 1);
    physics_joint_set_value(link, phy_joint_frequency, 10);
   
    with(next_rope){
        parent = other.last_rope;
    }

}

prácticamente con eso se crea una cuerda pero como digo esta es demasiado elástica, no mantiene sus "dimensiones" soy consiente que se debe limitar pero honestamente no se como haha gracias por responder!

Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!