Программирование - это просто
Advertisement
Главная arrow Разное arrow Исходники arrow Описания библиотек arrow Описание классов библиотеки «Easy game base library version 1.4»
21.03.2019 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Описание классов библиотеки «Easy game base library version 1.4» Печать E-mail
Автор megabax   
14.01.2010 г.
Скачать библиотеку можно здесь

Скачать библиотеку можно здесь.

Скачать библиотеку с примером можно здесь

Посмотреть историю изменения библиотек можно здесь.

 

(C) Шуравин А. П. www.easyprog.ru

 

Описание классов библиотеки «Easy game base library version 1.4»

 

Модуль EasyGameBase – базовые классы.

 

Класс TEasyGameBaseClass. Является родителем всех классов библиотеки. Содержит методы Serialize и Unserialize,  которые пишут и читают в поток соответственно.  Поддерживает контроль версии, для этого предусмотрен защищенный метод  GetVersion, при изменении версии класса он модифицируется. Таким образом, если потока читается объект старой версии это можно проанализировать. При чтении версия записывается в защищенное поле FVersion.  Так же содержит абстрактный метод GetClassCaption, предназначенный для получения русскоязычного наименования класса. Его необходимо переопределять для каждого дочернего класса.

Начиная с версии 1.4 содержит свойство ID –идентификатор объекта, который присваивается при добавлении его в контейнер.

 

Класс TEasyGameBitmap. Хранилище битовой карты. Сейчас пока просто имеет свойство Bitmap тип TBitmap, но в будущем будет развиваться.

 

Класс TEasyGameCollection. Предок все коллекций и контейнеров. Содержит методы поиска, добавления и удаления.

 

Класс TEasyGamePointerCollection. Коллекция указателей на объекты класса TEasyGameBaseClass или его потомков. В отличии от TEasyGameContainer предназначен для хранения именно указателей, а не самих объектов.

 

Класс TEasyGameLocationObjectsCollection дочерний от TEasyGamePointerCollection. Это коллекция указателей на объекты класса TEasyGameLocationObject или его потомков. В отличии от TEasyGameBaseClass предназначен для хранения именно указателей, а не самих объектов.

 

Класс TEasyGameAxesSystem. Является преобразователем координат. Задается точка начала координат в другой координатной системе и масштаб по оси x и y. Для преобразования используются функции GetX, GetY и GetPoint. Для обратного преобразования, когда нужно по точке на экране определить координаты в координатной плоскости используются функции ScreenToAxesX и ScreenToAxesY.

 

Класс TEasyGameNoun. Обозначает сущность игры. Является родителем классов контейнеров (TEasyGameContainer) и классов, обозначающих объекты (TEasyGameObject).  Содержит метод процедуру MakeQuantumOfTime, которая предназначена для совершения действия за выделенный сущности квант времени.

 

Класс TEasyGameContainer. Предназначен для управления списком объектов. Имеет метод AddGameObject – добавление объекта в список. Метод MakeQuantumOfTime передает квант времени всем хранящимся в нем объектам. Данный класс является родителем для класса «Карта» (TEasyGameMap) и «Платформа игры»  (TEasyGamePlatform).  В отличии от TEasyGamePointerCollection и TEasyGameLocationObjectsCollection хранит именно сами объекты, которые физически удаляются из памяти при вызове деструктора этого класса, либо при удалении методом Delete.

 

Класс TEasyGameMap. Данный класс реализует карту.  Имеет свойства «Максимальные координаты» (MaxX и MaxY), метод AddGameObject может добавлять только локационные объекты (TEasyGameLocationObject) и их потомки.  Имеет метод Draw, который отображает карту со всеми включенными в нее объектами на экране. Для преобразования координат данный класс инкапсулирует объект TEasyGameAxesSystem. В данном классе предусмотрены методы для поиска объектов по координатам FindObjectsAsCoord и поиска заданного класса по координатам FindObjectsAsCoordAndClassName. Оба метода возвращают TEasyGameLocationObjectsCollection.

 

Класс TEasyGameAction.  Заготовка для класса «Действие». Не содержит ни полей, ни методов.

 

Класс TEasyGamePlatform. Игровая платформа. Функция данного класса – все включенным в игру объектам дать квант времени и увеличить текущее время на приращение.  Так же может при помощи этого класса управлять скоростью течения игры и размером кванта времени. Иными словами, за один такт вызова метода MakeQuantumOfTime квант времени может раздаваться объектам несколько раз, в зависимости от размера кванта времени и скорости течении игры. Если скорость больше, то за один такт квант времени раздается большее число раз.

 

Класс TEasyGameObject.  Объект. В отличии от сущности объект умеет производить действие в отношении других объектов (метод Action).

 

Класс TEasyGameLocationObject. В отличии от просто объекта привязан к карте, имеет координаты. Так же имеет метод DrawWithMap для его прорисовки на карте.

 

Класс TEasyGamePartOfObject. Заготовка для класса, реализующего составные части других объектов. Например, составной частью объекта дом может быть: стены, потолок, окна, двери, комнаты.

 

Класс TEasyGamePartsContainer.  Заготовка для контейнера составных частей объекта  (TEasyGamePartOfObject).

 

Класса TEasyGameDrawMapObject. Класс объекта, который может быть нарисован на карте. Дочерний от TEasyGameLocationObject.

 

Класс TEasyGameUnit. Реализует юнита – подвижный игровой объект. В данной версии может двигаться по карте со скоростью, заданной вектором в свойствах VX, VY (скорость по оси X и Y) соответственно. Начиная с версии 1.4 можно задать тип прорисовки (свойство UnitDrawMode):

·        udrQuantumOfTime - при каждом новом кванте времени (в этом случае он будет двигаться по экрану плавно).

·        udrNewLocation - только при перемещению в новую локацию (будет двигаться рывками, но реже перерисовываться).

 

Класс TEasyGameWall. Реализует объект «стена». В данной версии реализовано только отображение стены на карте в виде перегородок (что бы можно было создать лабиринт).

 

Класс TEasyGamePartOfWall. Заготовка для составных частей объекта TEasyGameWall (стена).  Имеет абстрактный метод IsPossibleEnter, который показывает, может ли данная часть обеспечить проход сквозь стену. Пример объекта, который позволяет пройти сквозь стену – дверь. Она может быть открытая или закрытая.

 

Класс TEasyGameWallPartsContainer. Заготовка контейнера составных частей стены. В него можно добавить только объекты класса TEasyGamePartOfWall или их потомки.

 

 

Модуль EasyGameWallForm– форма редактирования параметров стены.

 

Класс TfrmWallParameters. Класс формы редактирования параметров стены. Может редактировать координаты и расположения стены: слева, справа, спереди, сзади.

 

 

Модуль EaseGameForms -  модуль форм редактирования объектов.

 

Класс TEasyGameObjectEditForm – класс предка для всех форм редактирования объектов. Объявлять формы рекомендуется примерно вот так:

 

  TfrmWallParameters = class(TEasyGameObjectEditForm)

    chbTop: TCheckBox;

    chbLeft: TCheckBox;

    chbRight: TCheckBox;

    chbBottom: TCheckBox;

    spX: TSpinEdit;

    spY: TSpinEdit;

    Label1: TLabel;

    Label2: TLabel;

    btnOk: TBitBtn;

  private

    { Private declarations }

  public

    { Public declarations }

    function EditObject(AObject:TEasyGameBaseClass):integer; override;

  end;

 

 

Последнее обновление ( 14.01.2010 г. )
 
« След.   Пред. »
 
© 2019 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше