Tetris относно въвеждането на в - той отбелязва,
Tetris - класическа игра, създадена Alekseem Pazhitnovym. Остава подходяща и интересна досега. Защо да не осъзнаваш, че не е толкова забавно?
Аз вече изготвен прототип, така че предлагам изтеглите изходния код на Tetris в C ++. така че можете да експериментирате с тях. Проектът демонстрира общите механиката на играта, без излишни подробности. Външен вид на заявлението можете да оцените в снимката в ляво.
- Стрелките наляво / надясно - движение в съответната посока;
- Стрелка - превърнете ток елемент на часовниковата стрелка;
- Стрелка надолу - да се ускори падането на текущия елемент;
- Space - за включване / изключване на пауза.
- Escape - започнете играта отново.
заявление архитектура, базирана на модела MVC, с които вече са се развили игра миночистач в Python.
За да направите без бъркотията, като се има предвид мащаба на играта, тя използва най-примитивна структура на проекта генерира директно в QtCreator.
В сваления архив, ще откриете следните файлове:
- Tetris.pro - проект описание на файла;
- main.cpp - начална точка, с която се създава и показва на джаджа на екрана;
- tetrismodel (з | CPP) - въвеждане на модела на логиката на играта.. Най-интересното нещо е тук;
- tetriscontroller (з | CPP) - изпълнение на контролиращия орган.. Тук ще намерите логиката на управление;
- tetrisview (з | CPP) - реализация на представителство.. извеждането на заключение със стандартната Qt средства въз основа на QPainter. Може би в бъдеще в името на този модул пренаписана, използвайки OpenGL.
Взаимодействието между модела и изгледа се осъществява така, че при всяка смяна Модели представителство напълно преначертани. Това може значително да опрости процеса на изпълнение, както на нивото на представяне на играта е напълно фиксирана във всеки даден момент. Разбира се, че е възможно да се направи оптимизация направи и прекрояване само тези части, които са се променили откакто за последен път. Все пак, това само засилва нашите проблеми, без значително увеличаване на производителността на съвременните компютри.
Tetris е динамична игра, така че трябва да се осигури механизъм за актуализации автоматичната функция разговор за състоянието. Може би по-добър подход е да се използва поток въз основа на стъпки от време за регулиране на скоростта на FPS игра. Въпреки това, в проекта ние успяваме прост таймер QTimer. която работи на редовни интервали. Недостатъкът на избрания подход е, че при бавни компютри, играта ще отиде бавно. Въпреки това, в първия случай, ние ще получите резултат не е много по-добре. Играта щеше да отиде с гарантиран процент, но в струи.
Важно е да се отбележи, че някои C ++ 11 може да се използва в регистрационния номер на проекта, така че ако има проблеми, опитайте с друг компилатор. Аз компилиран по проект Linux с GCC 4.9.2 и 4.8.6 Qt. От друга страна, можете да премахнете кодовия фрагмент с помощта на ламбда функции и опростена инициализация на масиви. След това проектът ще се срещне почти навсякъде.
По това все още се направи. Следващият път, когато се анализира статичен модел на играта.