Tetris
Gra polega na układaniu spadających bloków (tetrominoes) w rzędy. Celem jest budowanie pełnych poziomych linii bez przerw. Każda kompletna linia jest kasowana, a punkty są naliczane. Gra kończy się, gdy bloki nagromadzą się i dotkną górnej granicy planszy, uniemożliwiając pojawienie się nowej figury.
Written By Coder Matthew
Last updated 8 months ago
1) Grafiki użyte w Tetris

1.
BorderGrafika tworząca ramkę wokół planszy.
Używany do wizualnego oddzielenia planszy Tetrisa (Tilemapy) od reszty interfejsu użytkownika lub tła.
2.
GridGrafika tła dla siatki lub pola do wyświetlania wyniku/informacji.
Używany do rysowania siatki planszy.
3.
GhostGrafika reprezentująca cień spadającej figury.
4.
Blue,Cyan,Green,Orange,Purple,Red,YellowGrafiki kolorowych kafelków dla poszczególnych Tetromino.
Są to płaskie grafiki 2D, używane do rysowania figur Tetromino w miejscach, gdzie nie da się użyć standardowych
Tiles(np. w oknie podglądu następnej figury lub jako ikony w UI).
2) Hierarchia w Unity

Main CameraOdpowiada za widok gry, czyli za wyświetlanie planszy i spadających figur. Ustawia projekcję ortograficzną, idealną dla gier 2D opartych na siatce (Tilemap).
Jest statyczna i skupiona na obszarze planszy, aby uchwycić całe pole gry Tetrisa.
GridObiekt Unity Grid (Siatka), który definiuje globalny system współrzędnych labiryntu. Jest to niezbędna struktura nadrzędna dla komponentów
Tilemap.Organizator, który zapewnia, że wszystkie
Tilemapy(plansza i cień) używają tego samego układu komórek (np. 1x1 jednostka na kafelek).
BoardJest to obiekt, do którego przypięty jest skrypt
Board, będący sercem mechaniki gry.Kontroluje generowanie nowych figur (
SpawnPiece), logikę Game Over, sprawdzanie kolizji (IsValidPosition) oraz usuwanie pełnych linii (ClearLines).
GhostReprezentuje obiekt wizualizujący miejsce, w którym figura spadnie.
Do tego obiektu przypięty jest skrypt
Ghost(cień), który śledzi aktywną figurę.Ułatwia graczowi planowanie, pokazując docelową pozycję opadającej figury.
BorderObiekt wizualny tworzący ramkę wokół pola gry. Jest to graficzny element (Sprite), który definiuje granice planszy (np. czarna ramka).
Służy celom estetycznym, wizualnie oddzielając planszę gry od reszty ekranu i interfejsu.
CanvasJest kontenerem nadrzędnym dla wszystkich elementów interfejsu użytkownika (UI). Zarządza skalowaniem i rozmieszczeniem tekstu na ekranie.
Niezbędny do hostowania tekstu wyniku (
ScoreText).
ScoreText(wewnątrz Canvas)Element tekstowy (
TextMeshPro) wyświetlający aktualny wynik gracza. Pokazuje wynik w formacie czterech cyfr.Skrypt
Board(w metodzieUpdateScore) na bieżąco aktualizuje ten obiekt.
3) Skrypty użyte w tej grze

BoardJest to centralny menedżer i kontroler całej planszy gry. Zarządza logiką czyszczenia i ustawiania bloków na
Tilemap, generowaniem nowych figur (SpawnPiece) oraz sprawdzaniem warunków Game Over.Kontroluje kluczowe mechaniki: usuwanie pełnych linii (
ClearLines) oraz walidację pozycji (IsValidPosition) każdej figury, zanim ta się przesunie lub obróci.
DataStatyczny skrypt (klasa) przechowujący wszystkie stałe dane niezbędne do działania mechaniki Tetrisa.
Zawiera definicje kształtów wszystkich bloków (
Cells).Zapewnia spójność i zgodność z oficjalnymi regułami Tetrisa, dostarczając geometryczne zasady, których używają skrypty
TetrominoDataiPiece.
GhostSkrypt tworzący wizualny cień (preview) spadającej figury, wskazujący, gdzie nastąpi Hard Drop.
Śledzi aktywną figurę (
Piece) i oblicza jej najniższą możliwą pozycję na planszy.Używa oddzielnej warstwy
Tilemapdo rysowania cienia. Logika jest uruchamiana wLateUpdate, aby cień był zawsze aktualny po wszelkich ruchach figury.
PieceSkrypt sterujący pojedynczą, aktywną, spadającą figurą (Tetromino).
Zarządza inputem gracza (ruch boczny, Soft/Hard Drop, rotacja) oraz kontroluje timery spadania i blokady.
Implementuje zaawansowaną logikę rotacji oraz
TestWallKicks, aby umożliwić obrót figury, nawet gdy jest ona zablokowana przy ścianie lub innym bloku.
TetrominoDataUżywa struktury (struct w C++, pozdrawiamy mgr Tomasza Kożaka) używana do definiowania konfiguracji każdego typu bloku.
Łączy w sobie wygląd (Tile), typ Tetromino (np. 'I', 'J', 'L') oraz odpowiednie dane geometryczne z klasy
Data.Jest używany przez skrypt
Boarddo losowania nowej figury i przekazywania wszystkich jej cech geometrycznych do aktywnego obiektuPiece.
4) Całe skrypty
Tutaj znajdziesz całe skrypty bez owijania w bawełne 😊, każdy blok kodu jest starannie zakomentowany tak żebyś w miarę mógł ogarnąć o co chodzi nawet jak nie znasz unity i C#.