Zmeika
простая аркадная игра
|
абстракция текущего экрана + инкапсуляция привязки обработчиков событий FreeGlut. Подробнее...
#include <Screen.hpp>
Открытые члены | |
virtual | ~AScreen () |
базовый деструктор выполняет также "отвязку" данного экрана, если он был активным, но onDeselect уже не вызывает | |
void | select () |
использовать данный экран для обработки событий (сделать его активным) Подробнее... | |
Открытые статические члены | |
static bool | has_active () |
узнать выбран ли какой-либо объект AScreen в качестве активного | |
static AScreen & | get_active () |
получить ссылку на текущий активный экран | |
Защищенные члены | |
virtual void | onSelect () |
вызывается при выборе данного экрана | |
virtual void | onDeselect () |
вызывается при выборе другого экрана, если этот экран был активным | |
virtual void | onIdle () |
отсутствие событий, вызывается периодически | |
virtual void | onDisplay ()=0 |
перерисовка кадра | |
virtual void | onDisplayBefore () |
действие, выполняемое перед отрисовкой кадра | |
virtual void | onDisplayAfter () |
действие, выполняемое после отрисовки кадра | |
virtual void | onReshape (int width, int height) |
изменение размеров окна извне Подробнее... | |
virtual void | onPosition (int x, int y) |
перемещение окна (не реализовано в FreeGLUT 2.8) Подробнее... | |
virtual void | onVisibility (bool visible) |
изменение видимости окна (присутствует на экране, не присутствует на экране) Подробнее... | |
virtual void | onChar (unsigned char code, int mouse_x, int mouse_y) |
нажатие клавиши (код клавиши преобразуется в соответствующий ASCII-код) Подробнее... | |
virtual void | onCharUp (unsigned char code, int mouse_x, int mouse_y) |
отпускание зажатой клавиши (код клавиши преобразуется в соответствующий ASCII-код) Подробнее... | |
virtual void | onSpecialKey (int code, int mouse_x, int mouse_y) |
нажатие специальной клавиши Подробнее... | |
virtual void | onSpecialKeyUp (int code, int mouse_x, int mouse_y) |
отпускание зажатой специальной клавиши Подробнее... | |
virtual void | onEntry (bool entered) |
вход/выход мыши в окно Подробнее... | |
virtual void | onHover (int mouse_x, int mouse_y) |
движение мыши с отпущенными кнопками Подробнее... | |
virtual void | onDrag (int mouse_x, int mouse_y) |
движение мыши с зажатыми кнопками Подробнее... | |
virtual void | onMouse (int button, int mouse_x, int mouse_y) |
нажатие кнопки мыши Подробнее... | |
virtual void | onMouseUp (int button, int mouse_x, int mouse_y) |
отпускание кнопки мыши Подробнее... | |
virtual void | onMouseWheel (int wheel_number, int direction, int mouse_x, int mouse_y) |
прокручивание колеса мыши Подробнее... | |
Закрытые статические члены | |
static void | curScreenSelect (AScreen *) |
static void | onIdleWrapper () |
static void | onDisplayWrapper () |
static void | onReshapeWrapper (int width, int height) |
static void | onPositionWrapper (int x, int y) |
static void | onVisibilityWrapper (int status) |
static void | onCharWrapper (unsigned char code, int mouse_x, int mouse_y) |
static void | onCharUpWrapper (unsigned char code, int mouse_x, int mouse_y) |
static void | onSpecialKeyWrapper (int code, int mouse_x, int mouse_y) |
static void | onSpecialKeyUpWrapper (int code, int mouse_x, int mouse_y) |
static void | onEntryWrapper (int status) |
static void | onHoverWrapper (int mouse_x, int mouse_y) |
static void | onDragWrapper (int mouse_x, int mouse_y) |
static void | onMouseButtonWrapper (int button, int state, int x, int y) |
static void | onMouseWheelWrapper (int wheel, int direction, int x, int y) |
абстракция текущего экрана + инкапсуляция привязки обработчиков событий FreeGlut.
Предполагается, что классы-наследники дадут свои определения нужным им обработчикам событий. Готовые элементы реализации предполагают выключенный буфер глубины и включенную двойную буферизацию.
|
inlineprotectedvirtual |
нажатие клавиши (код клавиши преобразуется в соответствующий ASCII-код)
code | ASCII-код нажатой клавиши (нелатинские буквы могут не работать) |
mouse_x | x-координата мыши в окне в момент нажатия |
mouse_y | y-координата мыши в окне в момент нажатия |
Переопределяется в GameScreen, HallOfFameScreen и EnterNameScreen.
|
inlineprotectedvirtual |
отпускание зажатой клавиши (код клавиши преобразуется в соответствующий ASCII-код)
code | ASCII-код отпущенной клавиши (нелатинские буквы могут не работать) |
mouse_x | x-координата мыши в окне в момент отпускания |
mouse_y | y-координата мыши в окне в момент отпускания |
|
inlineprotectedvirtual |
движение мыши с зажатыми кнопками
Срабатывает периодически с некоторой частотой в процессе движения.
mouse_x | x-координата мыши в окне |
mouse_y | y-координата мыши в окне |
|
inlineprotectedvirtual |
вход/выход мыши в окно
entered | признак входа указателя мыши в окно (true – вошёл, false – вышел) |
|
inlineprotectedvirtual |
движение мыши с отпущенными кнопками
Срабатывает периодически с некоторой частотой в процессе движения.
mouse_x | x-координата мыши в окне |
mouse_y | y-координата мыши в окне |
|
inlineprotectedvirtual |
нажатие кнопки мыши
Координаты мыши отсчитываются от верхнего левого угла окна (не области рисования, без учёта заголовка?) вправо по горизонтали (x) и вниз по вертикали (y).
code | код (GLUT_LEFT_BUTTON, GLUT_RIGHT_BUTTON или GLUT_MIDDLE_BUTTON) нажатой кнопки |
mouse_x | x-координата мыши в окне в момент нажатия |
mouse_y | y-координата мыши в окне в момент нажатия |
Переопределяется в GameScreen.
|
inlineprotectedvirtual |
отпускание кнопки мыши
code | код нажатой кнопки |
mouse_x | x-координата мыши в окне в момент отпускания |
mouse_y | y-координата мыши в окне в момент отпускания |
|
inlineprotectedvirtual |
прокручивание колеса мыши
wheel_number | – "номер колеса" (можно игнорировать?) |
direction | – направление прокрутки (теоретически должно быть равно либо +1, либо -1) |
mouse_x | x-координата мыши в окне в момент срабатывания |
mouse_y | y-координата мыши в окне в момент срабатывания |
|
inlineprotectedvirtual |
перемещение окна (не реализовано в FreeGLUT 2.8)
x | смещение вправо от левого верхнего угла экрана |
y | смещение вниз от левого верхнего угла экрана |
|
protectedvirtual |
изменение размеров окна извне
width | новая ширина области рисования (в пикселах) |
height | новая высота области рисования (в пикселах) |
|
inlineprotectedvirtual |
нажатие специальной клавиши
code | код (см. GLUT_KEY_...) нажатой клавиши |
mouse_x | x-координата мыши в окне в момент нажатия |
mouse_y | y-координата мыши в окне в момент нажатия |
Переопределяется в GameScreen.
|
inlineprotectedvirtual |
отпускание зажатой специальной клавиши
code | код (см. GLUT_KEY_...) отпущенной клавиши |
mouse_x | x-координата мыши в окне в момент отпускания |
mouse_y | y-координата мыши в окне в момент отпускания |
|
inlineprotectedvirtual |
изменение видимости окна (присутствует на экране, не присутствует на экране)
visible | признак видимости окна (true – видно) |
void AScreen::select | ( | ) |
использовать данный экран для обработки событий (сделать его активным)
В каждый конкретный момент может быть выбран только один активный экран.