QuakeC Manual / QuakeC Мануал: 3.Переменные и типы данных
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
3.1. Типы railgun 20.03.13 в 18:51 |
|
|
Множество значений, и набор примитивных операций, которые реализуют основные аспекты его семантики railgun 20.03.13 в 18:56 |
||
|
характеризующие тип.Объект данного типа является ентити во время выполнения , которое содержит (имеет) значение этого типа. railgun 20.03.13 в 18:59 |
||
|
Вы не можете определить новые типы из существующих.В частности, вы не можете определить новые структуры или railgun 20.03.13 в 18:59 |
||
|
объекты.Эти ограничения делают QuakeC неблагоприятным по сравнению с BASIC. railgun 20.03.13 в 19:01 |
||
|
Вы можете добавить поля только для наиболее важных типов в QuakeC: ентити. railgun 20.03.13 в 19:02 |
||
|
3.2. Простые типы railgun 20.03.13 в 19:02 |
||
|
3.2.1.1. Пустые типы railgun 20.03.13 в 19:03 |
||
|
void_declaration => void railgun 20.03.13 в 19:04 |
||
|
Пустой результат, в основном, используется для определения процедуры (т. е. функции, которые не возвращают результат на всех). railgun 20.03.13 в 19:04 |
||
|
3.2.1.2. Типы с плавающей точкой railgun 20.03.13 в 19:05 |
||
|
floating_point_declaration => float name railgun 20.03.13 в 19:05 |
||
|
Значение с плавающей точкой.Float также используется для хранения Булевых(TRUE, FALSE) значений; целочисленных(integer) значений, таких как railgun 20.03.13 в 19:11 |
||
|
счетчики, либо флаги. railgun 20.03.13 в 19:11 |
||
|
Анализ двусмысленности присутствует с отрицательными константами: "a-5" (5 вычитается из а) будет анализироваться как railgun 20.03.13 в 19:14 |
||
|
"a", затем "-5", что приведет к ошибке. Отделим "-" от цифры пробелом ("а - 5"), чтобы получить надлежащее railgun 20.03.13 в 19:16 |
||
|
свойство. railgun 20.03.13 в 19:16 |
||
|
3.2.1.3. Векторные типы railgun 20.03.13 в 19:19 |
||
|
vector_declaration => vector name railgun 20.03.13 в 19:20 |
||
|
Вектор состоит из трех координат с плавающей точкой.Используется для обозначения позиции или направления в 3D-пространстве. railgun 20.03.13 в 19:21 |
||
|
Обратите внимание, что одинарные кавычки (') окружают вектор.Не используйте двойные кавычки,они зарезервированы для строк. railgun 20.03.13 в 19:22 |
||
|
Если вы объявляете вектор foobar, то вы можете получить его поля x, y и z,с float типами: foobar_x, railgun 20.03.13 в 19:23 |
||
|
foobar_y, и foobar_z. railgun 20.03.13 в 19:23 |
||
|
3.2.1.4. Строковые типы railgun 20.03.13 в 19:24 |
||
|
string_declaration => string name railgun 20.03.13 в 19:24 |
||
|
Представляет собой строку символов.Используется для указания имени файла или сообщения, которые будут транслироваться игрокам.Используйте railgun 20.03.13 в 19:25 |
||
|
”\n “ для новой строки.\" может быть использован, чтобы включить кавычки (") в строке. railgun 20.03.13 в 19:28 |
||
|
3.2.1.5. Типы ентити railgun 20.03.13 в 19:29 |
||
|
entity_declaration => entity name railgun 20.03.13 в 19:29 |
||
|
Ентити представляет объекты в игре, такие как вещи, игроков или монстров.Например, этот тип railgun 20.03.13 в 19:31 |
||
|
ентити self и other.Тип ентити представляет собой структурированный тип, состоящий из полей. railgun 20.03.13 в 19:32 |
||
|
3.2.2. Типы полей railgun 20.03.13 в 19:33 |
||
|
В отличие от других типов, тип ентити является ссылкой на экземпляр структурированного объекта, который содержит railgun 20.03.13 в 19:34 |
||
|
информацию самых разных видов, она хранится в полях объекта ентити.Каждому полу дается имя и railgun 20.03.13 в 19:37 |
||
|
тип. railgun 20.03.13 в 19:37 |
||
|
Некоторые поля не хранят значения;вместо этого, они хранят функцию, которая будет выполняться при определенных railgun 20.03.13 в 19:38 |
||
|
условиях, вызванных методов.. railgun 20.03.13 в 19:40 |
||
|
Если QuakeC был объектно-ориентированным языком программирования,метод функции отличался бы от railgun 20.03.13 в 19:42 |
||
|
других полей, и вы смогли бы создавать новые типы объектов, с собственными полями. railgun 20.03.13 в 19:42 |
||
|
Поскольку QuakeC в настоящее время стоит,все определения поля-определения полей ентити.Таким образом, в вашем railgun 20.03.13 в 19:47 |
||
|
коде можно добавить определение нового поля, а компилятор будет интерпретировать его как продолжение railgun 20.03.13 в 19:48 |
||
|
определения ентити. railgun 20.03.13 в 19:48 |
||
|
Вот все возможные определения полей ентити, с их типами: railgun 20.03.13 в 19:49 |
||
|
.float name railgun 20.03.13 в 19:49 |
||
|
.string name railgun 20.03.13 в 19:49 |
||
|
.vector name railgun 20.03.13 в 19:49 |
||
|
.entity name railgun 20.03.13 в 19:50 |
||
|
3.2.3. Зарезервированные типы полей railgun 20.03.13 в 19:50 |
||
|
DEFS.QC,первый файл,который читает компилятор,тут должны быть определены поля ентити и railgun 20.03.13 в 19:52 |
||
|
все другие поля.Данное определение жестко запрограммированно, и не может быть изменено без необходимости перекомпиляции railgun 20.03.13 в 19:53 |
