Sugerencia de Gravedad Inversa para el Platformer Object sin depender de extensiones

Hola a todos,

Quiero proponer una mejora para el comportamiento de Platformer Object en GDevelop: la implementación de una opción de gravedad inversa que venga integrada de forma nativa, sin necesidad de depender de extensiones creadas por la comunidad u otros métodos externos.

Detalles de la sugerencia

  1. Configuración de gravedad inversa integrada
    Propongo que el Platformer Object tenga una casilla que permita activar la gravedad inversa. Al hacerlo, los valores del salto deberían invertirse automáticamente (de positivos a negativos) sin que sea necesario ajustarlos manualmente. Esto garantizaría que:

    • Los valores positivos, como 500 (gravedad normal), pasen automáticamente a -500 (gravedad inversa).
    • Al cambiar a valores más bajos, como 100 (baja gravedad), estos también se transformen a -100, sin que se desconfiguren, pasen a 0 o vuelvan a positivos.
  2. Compatibilidad con plataformas diagonales
    En algunos motores, las plataformas diagonales no funcionan correctamente al activar la gravedad inversa. En GDevelop, sería ideal que estas plataformas funcionen de la misma manera tanto con gravedad normal como con gravedad invertida, garantizando consistencia en los movimientos del jugador.

  3. Problemas actuales al intentar implementar gravedad inversa
    Actualmente, en GDevelop, al cambiar los valores del salto a negativos para simular gravedad inversa, surgen los siguientes problemas:

    • El personaje se queda pegado al techo y, eventualmente, es impulsado hacia arriba de forma descontrolada, atravesando colisiones.
    • El salto no se activa correctamente, incluso al usar una máscara de colisión que detecte contacto con el techo.
    • Si los valores del salto se ajustan a 0, el jugador no puede saltar, y al volver a valores negativos, el problema persiste.

    Esto complica implementar una gravedad inversa que funcione como la normal, pero invertida.

  4. Limitaciones de la función ‘Flip Gravity’
    Si bien GDevelop tiene la función ‘Flip Gravity’, esta presenta limitaciones:

    • No funciona bien en algunos tipos de juegos.
    • No es compatible con plataformas diagonales.
    • Depende de una tecla para activarse, lo que limita su integración con eventos automáticos (como colisiones).

Propuesta de implementación

La idea es que la gravedad inversa pueda activarse o desactivarse de forma fluida mediante eventos, como al colisionar con un bloque específico:

  • Bloque con flecha hacia arriba: activa la gravedad inversa.
  • Bloque con flecha hacia abajo: regresa la gravedad a su estado normal.

Beneficios de la propuesta

Esta funcionalidad ampliaría las posibilidades de diseño de niveles y mecánicas para juegos en GDevelop, permitiendo:

  • Juegos más dinámicos con transiciones naturales entre gravedad normal e invertida.
  • Compatibilidad total con plataformas diagonales.
  • Implementaciones más sencillas y fiables, sin depender de ajustes manuales o extensiones externas.

Aquí adjunto 2 imágenes gif de cómo debería funcionar la gravedad inversa.

gravedad inversa ejemplo 2

Espero que esta sugerencia sea útil y pueda considerarse para futuras versiones de GDevelop.

Saludos.

1 Like