Tetris относно въвеждането на в - той отбелязва,

Tetris относно въвеждането на в - той отбелязва,

Tetris - класическа игра, създадена Alekseem Pazhitnovym. Остава подходяща и интересна досега. Защо да не осъзнаваш, че не е толкова забавно?

Аз вече изготвен прототип, така че предлагам изтеглите изходния код на Tetris в C ++. така че можете да експериментирате с тях. Проектът демонстрира общите механиката на играта, без излишни подробности. Външен вид на заявлението можете да оцените в снимката в ляво.

  1. Стрелките наляво / надясно - движение в съответната посока;
  2. Стрелка - превърнете ток елемент на часовниковата стрелка;
  3. Стрелка надолу - да се ускори падането на текущия елемент;
  4. Space - за включване / изключване на пауза.
  5. Escape - започнете играта отново.

заявление архитектура, базирана на модела MVC, с които вече са се развили игра миночистач в Python.

За да направите без бъркотията, като се има предвид мащаба на играта, тя използва най-примитивна структура на проекта генерира директно в QtCreator.

В сваления архив, ще откриете следните файлове:

  1. Tetris.pro - проект описание на файла;
  2. main.cpp - начална точка, с която се създава и показва на джаджа на екрана;
  3. tetrismodel (з | CPP) - въвеждане на модела на логиката на играта.. Най-интересното нещо е тук;
  4. tetriscontroller (з | CPP) - изпълнение на контролиращия орган.. Тук ще намерите логиката на управление;
  5. tetrisview (з | CPP) - реализация на представителство.. извеждането на заключение със стандартната Qt средства въз основа на QPainter. Може би в бъдеще в името на този модул пренаписана, използвайки OpenGL.

Взаимодействието между модела и изгледа се осъществява така, че при всяка смяна Модели представителство напълно преначертани. Това може значително да опрости процеса на изпълнение, както на нивото на представяне на играта е напълно фиксирана във всеки даден момент. Разбира се, че е възможно да се направи оптимизация направи и прекрояване само тези части, които са се променили откакто за последен път. Все пак, това само засилва нашите проблеми, без значително увеличаване на производителността на съвременните компютри.

Tetris е динамична игра, така че трябва да се осигури механизъм за актуализации автоматичната функция разговор за състоянието. Може би по-добър подход е да се използва поток въз основа на стъпки от време за регулиране на скоростта на FPS игра. Въпреки това, в проекта ние успяваме прост таймер QTimer. която работи на редовни интервали. Недостатъкът на избрания подход е, че при бавни компютри, играта ще отиде бавно. Въпреки това, в първия случай, ние ще получите резултат не е много по-добре. Играта щеше да отиде с гарантиран процент, но в струи.

Важно е да се отбележи, че някои C ++ 11 може да се използва в регистрационния номер на проекта, така че ако има проблеми, опитайте с друг компилатор. Аз компилиран по проект Linux с GCC 4.9.2 и 4.8.6 Qt. От друга страна, можете да премахнете кодовия фрагмент с помощта на ламбда функции и опростена инициализация на масиви. След това проектът ще се срещне почти навсякъде.

По това все още се направи. Следващият път, когато се анализира статичен модел на играта.


Tetris на C ++: Вижте и контролер