Возможно вы искали: 'Internal Pain'

May 21 2025 20:33:50
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96241420
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18379
• Обзор The Walking ... 18822
• Обзор DMC: Devil M... 19898
• Обзор на игру Valk... 15894
• Обзор на игру Stars! 17780
• Обзор на Far Cry 3 17971
• Обзор на Resident ... 16039
• Обзор на Chivalry:... 17528
• Обзор на игру Kerb... 17995
• Обзор игры 007: Fr... 16640
Превью о играх
• Превью к игре Comp... 17977
• Превью о игре Mage... 14480
• Превью Incredible ... 14734
• Превью Firefall 13498
• Превью Dead Space 3 16352
• Превью о игре SimC... 14747
• Превью к игре Fuse 15456
• Превью Red Orche... 15563
• Превью Gothic 3 16366
• Превью Black & W... 17371
Главная » Статьи » Разное » Sanny Builder: Типы данных

Sanny Builder: Типы данных

Sanny Builder: Типы данных Продолжая разговор о возможностях Sanny Builder, хотелось бы обсудить вопрос о типах данных. Новички зачастую не сразу понимают, что означают Integer values, что такое String и т.п. Им и посвящена данная статья. Вообще, те типы данных (Data Types), которые используются в SB, характерны для многих языков программирования. Условно, их всех можно разделить на числа и текст. Процессор понимает только числа. Текст сам по себе является набором символов, каждый из которых имеет свое численное выражение. Скриптовые возможности движка GTA не позволяют (да такой необходимости и не стоит) работать с отдельным символом в строке. Однако определенные операции со строками производить все же можно. Базовым видом данных являются числа. Они, как известно, бывают двух видов: целые и дробные. Важное замечание: отличие между ними состоит не столько в значении самого числа, а в его записи. Так число 5.0 с точки зрения математики есть число целое. Однако в скриптах оно будет именоваться дробным, или числом с плавающей точкой (floating-point value). Все числа, которые имеют в своем написании точку, являются дробными. Пример:

50.001
-10.750
0.0

Для чисел между -1 и 1 можно не писать 0 в начале. Т.е. 0.0 равнозначно .0

Поскольку способ записи числа имеет значение, то возможны ошибки, когда скриптер забывает написать точку. Компилятор в таком случае расценивает число как целое. Не вдаваясь в отдельные подробности, скажу, что значение этого числа будет немного изменено вследствие этого. В игре после этого могут появиться проблемы. Поэтому следите за этим обстоятельством.

Некоторые опкоды в игре требуют именно применения дробных значений. Это касается скорости движения отдельных объектов, здоровья, брони и т.п. Поэтому старайтесь точно узнать, какой именно тип необходимо использовать.

Sanny Builder в данном случае берет часть работы на себя. Во-первых, внутри классов можно вызвать подсказку. Подсказка появляется автоматически, когда вы ставите скобку после имени члена класса:

Car.PutAt(

Вы увидете, что 2й, 3й, 4й параметры имеют тип Float. Также подсказку для данного члена класса можно вызвать в любое время нажатием Ctrl+Shift+Space.

Car.PutAt($Car, {нажмите Ctrl+Shift+Space здесь} )

Во-вторых, при использовании конструкции Var..End, SB начинает следить за тем, какие числа вы записываете в переменные. Например, вы объявили переменную $Var с типом Float:

var
$Var: Float
end

Теперь, если вы попытаетесь записать в эту переменную целое число

$Var = 1

компилятор автоматически преобразует его в дробное

$Var = 1.0

Примечание: Данное правило не распространяется на случаи, когда в строке стоит опкод. Тогда SB записывает все параметры as is, не анализируя их. Поэтому лучше, если вы будете следить за своими скриптами.

Еще один тип данных это хендл (handle). Строго говоря это простое число, однако оно представляет собой указатель в памяти на какой-либо объект. Опять-таки, опуская подробности, скажу, что хендл - это "имя" объекта (машины, актера и т.п.). По данному имени вы можете обратиться к объекту и производить над ним определенные действия.
Хендлы содержатся в переменных целого типа (Integer values). Их содержимое заполняется после использования специального опкода - конструктора. В SB в каждом классе есть такой конструктор.
Имеются ввиду классы опкодов для динамических объектов, которые создаются непосредственно в скриптах. Например актер (actor), игрок (player), объект (object) и т.д. Нединамические объекты (гаражи) или некоторые отдельные виды объектов, которые не создаются в ходе игры (модели), такого конструктора не имеют.

Конструктор имеет одинаковое для всех классов имя - Create. После его срабатывания игра создает в памяти указатель на новый объект и записывает его в переменную:

$ActorHandle = Actor.Create(CivMale, #MALE01, 0.0, 0.0, 0.0)

Теперь хендл актера хранится в переменной $ActorHandle, и вы можете, используя ее, делать с ним все, что угодно.

Строго говоря, хендл можно получить не только создавая нового актера (или еще что-нибудь). В игре существуют специальные опкоды, позволяющие "захватить" случайного прохожего и превратить его таким образом в актера. Но это тема для отдельного разговора.

Как уже говорилось, хендл суть есть обычное число. Его значение можно легко узнать, и в принципе с хендлом можно проводить любые арифметические и логические операции. Поэтому все математические опкоды, предназначенные для целых чисел действительны и для хендлов. В комментариях к ним это иногда указано:

0084: $IntVar = $ActorHandle // integer values and handles

Ну и наконец заключительный тип - String. Он использовался во всех GTA, но только в SA получил развитие.
String представляет собой строку, т.е. набор символов. В скриптах SA используются два вида строк: фиксированной и переменной длины. Последний вид НЕ поддерживается в GTA3 и VC.

Строки фиксированной длины (fixed-length string) могут содержать до 7 символов включительно. Если строка будет меньше этой длины, остаток заполняется пустотой. Данные строки оформляются в одинарные кавычки:

05AA: s$MyString = 'MY_STR' // 8-byte strings

Обратите внимание, что для работы со строками используется специальный вид переменных. Они обозначаются буквой s: s$GlobalVar, 1@s.

Данный вид строк может использоваться и как хендл. Обратите внимание на команду

thread 'MAIN'

MAIN в данном случае - это имя потока. Используя его, можно прекратить поток из любого места

end_thread_named 'MAIN'

Или другой пример

07D3: 'HOUSE' = init_external_script_named_handle 23 (BURG_BRAINS)
'HOUSE' - хендл внешнего скрипта

Такие строки, кроме функции хендлов, используются как идентификаторы отдельных полей в .GXT-файле.

00BA: text_styled 'STAD_01' 1000 ms 2

Другой вид строк - строки переменной длины (variable-length string). Они обозначаются двойными кавычками и могут содержать в себе большее по сравнению с предыдущим видом число символов. Точное число не известно.
Данный вид может использоваться для тех же целей, что и предыдущий. Чаще всего в оригинальных скриптах он используется для указания имен анимаций

04ED: load_animation "LOWRIDER"

Переменные, содержащие такие строки, обозначаются символом v: v$GlobalVar, 1@v.
Ограничений по использованию разных видов строк не было замечено. Это значит, что вы можете использовать в опкоде либо первый, либо второй вид. Выбор будет осуществляться в зависимости от длины строки.
В математических операциях работа со строками существенно ограничена. Вы можете проводить лишь операции присваивания и сравнения:

05AA: s$Var = 'IE16' // 8-byte strings
05AD: s$Var == s$Var2 // 8-byte strings
06D1: v$Var = "NIL" // 16-byte strings
08F9: v$Var == v$Var2 // 16-byte strings


Перечисленные выше типы данных присущи и элементам массивов. Т.е. массивы могут быть типа Integer, Float, String. Подробнее о работе с массивами в Sanny Builder будет рассказано отдельно.


------
Автор: Seemann
E-mail:неизвестно
ICQ: неизвестно
1592 Прочтений •  [Sanny Builder: Типы данных] [13.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Sanny Builder: Типы данных Ukraine Vova 13.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка