Zmeika
простая аркадная игра
|
модель игрового поля, хранит массив ячеек Cell. Подробнее...
#include <Game.hpp>
Открытые типы | |
using | Position = std::pair< Index, Index > |
координаты на поле Подробнее... | |
Открытые члены | |
Field (Index horz, Index vert) | |
задать размеры поля по горизонтали и вертикали Подробнее... | |
Index | xsize () const |
получить размер по горизонтали | |
Index | ysize () const |
получить размер по вертикали | |
Cell | operator() (Index x, Index y) const |
получить клетку по координатам, бросает исключение для плохих x, y. | |
Cell & | operator() (Index x, Index y) |
получить клетку по координатам, бросает исключение для плохих x, y. | |
Cell | operator[] (const Position &p) const |
получить клетку по координатам, бросает исключение для плохих координат | |
Cell & | operator[] (const Position &p) |
получить клетку по координатам, бросает исключение для плохих координат | |
template<class Visitor > | |
void | scan (Visitor visitor) const |
пройтись по всем ячейкам поля, visitor принимает параметры (dx, dy, cell) Подробнее... | |
Закрытые данные | |
Index | xsize_ |
Index | ysize_ |
std::vector< Cell > | cells |
модель игрового поля, хранит массив ячеек Cell.
Массив ячеек организован в "матрицу", которую можно адресовать индексами (x, y) с помощью оператора ().
using Field::Position = std::pair<Index, Index> |
координаты на поле
Работа с ними опирается на "оборачивающую" арифметику в дополнительном коде (переполнения и преобразование отрицательных к беззнаковому типу).
задать размеры поля по горизонтали и вертикали
Заполняет поле пустыми ячейками.
horz | горизонтальный размер, индекс x от 0 до horz - 1 |
vert | вертикальный размер, индекс y от 0 до vert - 1 |
|
inline |
пройтись по всем ячейкам поля, visitor принимает параметры (dx, dy, cell)
В начале перебора: dx == 0 и dy == 0; затем передаются смещения в клетках от предыдущей переданной клетки. Так сделано для упрощения использования функции glRasterPos.