Tetris bevezetéséről szóló c - emlékeztet

Tetris - a klasszikus játék által létrehozott Alekseem Pazhitnovym. Továbbra is fontos és érdekes eddig. Miért nem veszik észre, hogy nem olyan vicces?
Már készített egy prototípus, ezért javasoljuk, hogy le a forráskódot Tetris C ++. így kísérletezni velük. A projekt jól mutatja az általános mechanika a játék felesleges részleteket. Megjelenése az alkalmazás akkor értékeljük a képen a bal oldalon.
- Bal / jobb nyíl - lépés a megfelelő irányba;
- Arrow - kapcsolja aktuális elem az óramutató járásával ellentétes;
- Lefelé nyíl - felgyorsítása őszén az aktuális elem;
- Space - on / off szünet.
- Menekülés - kezdje újra a játékot.
alkalmazás architektúra alapján az MVC minta, amellyel a már kidolgozott a játék Aknakereső Python.
Ehhez nélkül a rendetlenség, figyelembe véve a skála a játék, akkor használják a legprimitívebb szerkezet a projekt által generált közvetlen QtCreator.
A letöltött archív, meg fogja találni a következő fájlokat:
- Tetris.pro - projekt leírása file;
- main.cpp - indul a pont, ahol jön létre, és a képernyőn megjelenik a widget;
- tetrismodel (h | cpp) -. végrehajtása a modell a logikai játék. A legérdekesebb dolog van;
- tetriscontroller (h | cpp) -. végrehajtása az ellenőr. Itt található a vezérlő logika;
- tetrisview. (h | CPP) - megvalósítása képviselet. rajz egy következtetés a szabványos Qt jelenti alapuló QPainter. Talán a jövőben kedvéért ez a modul újraírható OpenGL.
A kölcsönhatás a modell és a nézet úgy van kialakítva, hogy minden változás modell ábrázolása teljesen átalakul. Ez nagyban egyszerűsíti a végrehajtás, mint szintjén ábrázolások a játék teljesen fix bármikor. Persze, lehetett tenni az optimalizálás, és újrarajzolás csak azokat a részeket, amelyek megváltoztak, mióta utoljára. Azonban ez csak fokozza a problémát anélkül, hogy jelentős teljesítmény-növekedést a modern számítógépek.
Tetris egy dinamikus játék, így meg kell adnia egy mechanizmust az automatikus hívás funkció állapotáról. Talán egy jobb megközelítés lenne, hogy használ áramot alapján lépésekben alkalmazkodási idővel a sebesség egy FPS játék. Ugyanakkor a tervezet sikerül egy egyszerű időzítő QTimer. amely működik, rendszeres időközönként. A hátránya a választott megközelítés az, hogy a lassú számítógépek, a játék megy lassan. Azonban az első esetben kapnánk eredmény nem sokkal jobb. A játék lett ment a garantált sebesség, hanem a spurts.
Fontos megjegyezni, hogy bizonyos C ++ 11 lehet használni a projekt kódot, így ha probléma van, akkor próbálkozzon egy másik fordító. Összeállítottam Linux alatt projekt gcc 4.9.2 és Qt 4.8.6. Másrészt, akkor távolítsa el a kódrészletet a lambda függvények és egyszerűsített inicializálása tömbök. Ezután a projekt megfelel szinte bárhol.
Ennél tették. A következő alkalommal, amikor elemezni egy statikus modell a játék.