Multi-Move

Sandbox de plataformas 2D con 6 modos de movimiento intercambiables

Proyecto finalizado
Unity C# 2D DAM

Sobre el proyecto

Multi-Move es un sandbox de plataformas 2D desarrollado en Unity con C# durante la asignatura de Programación del primer año de DAM. El proyecto demuestra un sistema de movimiento avanzado con múltiples configuraciones intercambiables en tiempo real, cada una con físicas, gravedad y comportamiento únicos.

El jugador controla un cubo que puede moverse, saltar y cambiar entre 6 modos de movimiento distintos presionando la tecla M. Cada modo está implementado como un ScriptableObject, permitiendo una arquitectura modular y fácilmente extensible. El sistema incluye partículas visuales, cambios de color dinámicos según el estado (suelo, subida, pico, caída) y una cámara con seguimiento suave.

Modos de movimiento

Cada modo es un ScriptableObject con parámetros independientes. Presiona M para cambiar entre ellos.

Basic

Movimiento estándar de plataformas. Equilibrado para la mayoría de situaciones.

Velocidad: 70
Salto: 10
Gravedad: 2→3→4
Saltos aéreos: 1

Underwater

Movimiento subacuático con gravedad reducida y saltos ilimitados.

Velocidad: 50
Salto: 7
Gravedad: 0.5→0.3→0.5
Saltos aéreos: ∞

Glider

Planeo con caída lenta y mayor control en el aire. Ideal para distancias largas.

Velocidad: 50
Salto: 8
Gravedad: 1→1.5→2
Saltos aéreos: 2

Hectic

Velocidad extrema con aceleración brutal. Para jugadores que buscan caos.

Velocidad: 120
Salto: 12
Gravedad: 5→6→8
Saltos aéreos: 3

Rocket

Salto potente con caída rápida. Como un cohete que sube y estrella.

Velocidad: 60
Salto: 15
Gravedad: 3→6→10
Saltos aéreos: 1

Slippy Flappy

Superficie resbaladiza con fricción mínima. Saltos múltiples tipo Flappy Bird.

Velocidad: 50
Salto: 7
Gravedad: 0.5→0.8→2
Saltos aéreos: 5

Mecánicas principales

ScriptableObjects

Cada modo de movimiento es un asset ScriptableObject con parámetros configurables desde el editor de Unity.

Cambio en tiempo real

Presiona M para alternar entre los 6 modos sin interrumpir el gameplay.

Colores dinámicos

El sprite cambia de color según el estado: suelo (verde), subida (azul), pico (amarillo), caída (rojo).

Sistema de partículas

Partículas de salto, colisión, movimiento y "no salto" para feedback visual inmediato.

Gravedad por fases

Tres valores de gravedad distintos: subida (ligera), pico (mínima) y caída (pesada) para un salto más natural.

Cámara suave

Seguimiento con SmoothDamp que se adapta a la velocidad del jugador.

Controles

Movimiento

  • A / ← Mover izquierda
  • D / → Mover derecha
  • W / ↑ Saltar (mantener para altura)

Acciones

  • M Cambiar modo de movimiento

Stack Tecnológico

Motor & Lógica

  • Unity 2D
  • C# (Scripts)
  • Rigidbody2D
  • Physics2D

Gameplay Systems

  • ScriptableObjects
  • State Machine (gravedad)
  • Raycast2D (ground check)
  • Multi-jump system

Visual & FX

  • Particle System
  • Gradient (colores aéreos)
  • SpriteRenderer
  • SmoothDamp (cámara)