Cómo Crear un Juego de Tetris en Unity
(Parte 3: La Sombra o Proyección Fantasma)
En las entregas anteriores preparamos la matriz del tablero y el movimiento de los tetrominos. Hoy vamos a programar el script `Ghost.cs`, que dibuja una silueta translúcida en la parte inferior del tablero indicando exactamente el punto de impacto de la pieza activa.
1. ¿Cómo Funciona la Lógica del Fantasma?
El componente fantasma actúa clonando o duplicando de forma virtual la forma de la pieza que el jugador está moviendo en ese momento. Mediante un bucle while, simula una caída libre paso a paso hasta que detecta una colisión con el tablero, momento en el cual se detiene y se renderiza con un color semitransparente.
Las tareas principales de este script son:
- Instanciación dinámica: Crea el clon visual solo si no existe en pantalla.
- Sincronización: Copia la posición, escala y rotación de la pieza real en cada frame.
- Simulación de impacto: Desciende paso a paso utilizando
MoveDown()hasta que el tablero valida una posición ilegal, retrocediendo un paso para fijar la altura de la sombra.
2. Código C# Completo: `Ghost.cs`
Crea un nuevo script llamado Ghost.cs en tu proyecto de Unity y pega el siguiente código optimizado:
using UnityEngine;
public class Ghost : MonoBehaviour
{
[Header("Configuración visual")]
[Tooltip("Color y transparencia de la sombra del fantasma")]
public Color color = new Color(1f, 1f, 1f, 0.2f);
private Shape ghostShape = null;
private bool hitBottom = false;
///
/// Dibuja y proyecta la posición del fantasma basándose en la pieza actual y el tablero.
///
public void DrawGhost(Shape originalShape, Board gameBoard)
{
if (originalShape == null || gameBoard == null) return;
// 1. Si el fantasma aún no existe, lo creamos como una copia de la pieza original
if (ghostShape == null
Deja un comentario