Главная » Статьи » Играем Blitz » Blitz3D |
ВведениеПервое что встает на пути новичков, судя по вопросам на форумах, это типы. Итак, для начала, что же это такое? Представьте себе базу данных, где каждая запись представляет собой несколько полей (имя, фамилия итд). Создать шаблон записи можно так: Что бы создать запись и присвоить переменной адрес этой записи, делаем так: Test.TestType=New TestType
Запись помещается в конец связанного списка. Для каждого типа создается свой список. Теперь мы можем заполнять поля записи Test\name$="Артур"
Test\Age=20 Итд. Для чего мы можем использовать типы? Представьте, что вы делаете систему частиц. Для каждой частицы необходимо указать скорость движения, координаты, текстуру итд. Ну, тут без типов не обойтись. Массивы в типахДля того чтоб хранить векторы в типе удобно использовать специальный массив. Он не динамический и одномерный. От обычного массива отличается квадратными скобками. Например - Vector[3]. Пример использования: Type Player
Field X%[10],Y%[10] Массив типов создается точно так же как и обычный, естественно он также является частью связанного списка. Пример: Type Player
Field Number% Типы внутри типовЗачастую вам нужно будет создавать поля в новом типе какого-нибудь другого типа. Вот небольшой пример для иллюстрации: Type Parent
Field Name$ Теперь смотрите в дебуге: Все должно быть предельно понятно за исключением слова Each. С его помощью мы пробегаем по всему связанному списку записей одного типа. Так же существуют команды Last, First, After и Before. Т.е. если вы хотите получить первую запись из списка вам необходимо сделать так: FirstParentRecord.parent = First parent
Следующую запись: Итд, думаю с этим все понятно... Ах да, чуть не забыл про команду Insert: Перемещает нашу вторую запись в начало списка. Все просто. Для удаления записи используйте Delete SecondParentRecord, а для очистки всего списка Delete Each parent. Команды Object() и Handle()Команды эти не документированы, но всем давно известны, и широко используются. Возвращает адрес в памяти указанного типа Object.Something(Handle%)
Возвращает тип по указанному адресу в памяти. Если тип не существует, то вы получите ошибку при попытке обратиться к нему. Пример: Type Player
Field X%,Y% Что первое приходит в голову при виде этих команд? Конечно же быстрый доступ к отдельным записям, читайте игровым объектам. Graphics3D 640,480,0,2
Type info Таким образом, мы избавляемся от перебора всех записей в поисках нужной через Each. | |
Просмотров: 90 | |
Всего комментариев: 0 | |