Реферат: Помощь в обучении программированию
Реакцию на событие от пользователя "отпускание фигуры" можно представить следующим образом:
Проверить есть текущая фигура Assigned(fCurrentFigure)
Если есть то пока она может сдвигаться вниз (fCurrentFigure.CanDown)
сдвигать ее вниз (fCurrentFigure.Down)
обрабатываем ситуацию упал (для бомб падение предполагает очистку других ячеек поля) fCurrentFigure.Falled
RotateAgainst, RotateAlong
Реакцию на событие от пользователя "поворот фигуры" можно представить следующим образом:
Проверить идет ли игра и есть текущая фигура IsGoing and Assigned(fCurrentFigure)
Если есть то повернуть фигуру fCurrentFigure:=fCurrentFigure.Rotate
При выполнении перечисленных операций с фигурой совершенно не важно какая она на самом деле. Операции проводятся с базовой фигурой, которая имеет лишь методы по своему повороту, сдвигу. Реализация всех этих действий выполняется в потомках объекта базовая фигура (TBaseFigure), перечисленных ниже. В потомках даже приходиться лишь правильно определить координаты относительно базовой точки, остальное сделает TBaseFigure!
TBaseFigure - класс базовая фигура позволяющий задать очертания фигуры и методы по ее перемещению, повороту. Включает в себя следующие поля
Cell |
ячейка (TFieldCell) |
Описание основной ячейки - цвет, текстура, номер находящийся в ней. |
Xbase |
координата по X (integer) |
Координаты базовой точки фигуры на поле |
Ybase |
координата по Y (integer) | |
DownLimit |
отступ снизу (integer) |
Отступы вниз, влево, вправо от базовой точки до границ фигуры, чтобы не вылазить за границы поля при перемещении. Т.е. общие очертания фигуры всегда прямоугольник. Конкретно какие ячейки она занимает в этом пространстве опредялются для потомков индивидуально |
RightLimit |
отступ справа (integer) | |
LeftLimit |
отступ слева (integer) |
методы:
Rotate(AlongClock:boolean) |
Реализует поворот фигуры по или против часовой стрелки |
К-во Просмотров: 440
Бесплатно скачать Реферат: Помощь в обучении программированию
|