Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая ТП Францев Артем БСТ1801.docx
Скачиваний:
63
Добавлен:
12.03.2022
Размер:
1.98 Mб
Скачать
  1. Логическая структура программы

2.1 Класс рыбы Fish

содержащий следующие данные:

Свойства:

  • xPos – позиция по оси абсцисс;

  • yPos – позиция по оси ординат;

  • state – номер фрейма для анимации;

  • power – «сила» рыбы, обратно пропорциональна вероятности вытянуть рыбу;

  • level – «уровень» рыбы, принадлежность к соответствующей наживке;

  • weight – вес рыбы;

  • speed – горизонтальная скорость передвижения.

События:

  • EventDeleteObject – удаление рыбы.

Методы:

  • OnDownMove – метод, реализующий движение на дно;

  • Move – обработка перемещения рыбы;

  • Catched – метод, вызываемый если рыба поймана;

  • SetPropertiesByPower – метод, устанавливающий основные свойства по свойству power.

Конструктор:

В конструкторе инициализируются все свойства: сила, уровень, вес, скорость, фрейм анимации и позиция рыбы. Также выполняется подписка на событие начала дождя (объект дождя передается в конструктор по ссылке).

2.3 Класс птицы Bird

Свойства идентичны родительскому классу.

Методы (новые или перегруженные):

  • OnDownMove – перегруженный метод, реализующий движение к водной глади при дожде, в данном случае переключает горизонтальную скорость на максимальную;

  • SetPropertiesByPower – перегруженный метод, устанавливающий основные свойства по свойству power.

Конструктор:

Аналогичен родительскому классу, за исключением стартовой высоты; также скорость и уровень теперь гарантированно установлены в 2 и 5 соответственно. Также выполняется подписка на событие начала дождя (объект дождя передается в конструктор по ссылке).

2.2 Класс рыбака на пирсе Fisher

catching – флаг: рыбак «тянет» рыбу;

  • state – номер фрейма для анимации;

  • lvl – текущий уровень наживки;

  • ptrLen – длина лески (после поплавка, т.е. глубина ловли);

  • xPosPtr – позиция поплавка по оси абсцисс;

  • yPosPtr – позиция поплавка по оси ординат;

  • xPos – позиция рыбака по оси абсцисс;

  • yPos – позиция поплавка по оси ординат;

  • worktime – время работы рыбака;

  • fishCount – количество пойманной рыбы.

События:

  • EventStopWork – событие прекращение работы рыбака;

  • EventDeleteObject – событие удаления рыбака.

Методы:

  • Catch – метод, переключающий анимацию на вытягивание и добавляющий рыбу к счетчику пойманных рыб;

  • Move – метод передвижения поплавка (имитирует покачивание поплавка на воде);

  • OnWorkStop – обработчик события окончания работы, вызывает событие удаления рыбака.

Конструктор:

Выставляет свойства: рабочее время в 4 часа; фрейм анимации в 4 (рыбак начинает закидывать удочку); уровень наживки в 1; положение рыбака на пирсе; связывает событие прекращения работы с соответствующим методом-обработчиком; а также подписывает метод прекращения работы на начало дождя.

2.4 Класс рыбака на лодке Fisherboat

Свойства: аналогичны родительскому классу.

События: аналогичны родительскому классу.

Методы (перегруженные):

  • Move – метод передвижения поплавка (имитирует покачивание поплавка на воде), в перегруженной версии добавляется покачивание рыбака на лодке.

Конструктор:

Выставляет свойства: аналогичен родительскому, но положение рыбака – в воде.