Возможно вы искали: 'Homeworld 2'

May 21 2025 20:54:04
  • Как сделать 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: Quick Start. Part 2

Sanny Builder: Quick Start. Part 2

Sanny Builder: Quick Start. Part 2 В предыдущей статье мы говорили о том, что все математические и арифметические выражения можно писать без опкодов. Это значительно удобнее и быстрее. Однако в компилятор Sanny встроены команды, позволяющие сократить даже простые выражения.

1) Команда Inc. Эта команда представляет собой альтернативу обычному сложению. Она увеличивает значение первого параметра на число, переданное вторым параметром. Первым может стоять переменная (типа Integer или Float) или свойство класса:
$Var += 10
Inc($Var, 10)

К переменной $Var в обоих вариантах будет прибавлено 10.
Напомню, что если второе число целое (Integer), а переменная типа Float, то компилятор автоматически преобразует число в дробное. Данную команду удобно использовать, если вам нужно лишь прибавить единицу к переменной, поскольку второй параметр по умолчанию равен 1
$Var += 1
Inc($Var)

Оба варианта равнозначны.
В качестве первого параметра может стоять свойство класса. Подробнее о них будет рассказано в отдельной статье, сейчас я лишь приведу пример:
0109: player $PLAYER_CHAR money += 1
Player.Money($PLAYER_CHAR) += 1
Inc(Player.Money($PLAYER_CHAR))

Все три варианта имеют одинаковое значение: количество денег игрока будет увеличено на единицу.

2) Команда Dec. Это замена операции вычитания:
$Var -= 3
Dec($Var, 3)

На нее распространяются все написанное выше, за исключением примера со свойством. Дело в том, что свойство Money у игрока может только увеличиваться (опкод 0109). Опкода для вычитания денег нет. Поэтому выражение типа Player.Money($PLAYER_CHAR) -= 1 работать не будет. Данное ограничение будет преодолено в следующих версиях SB.

3) Команда Mul. Операция умножения. Все тоже самое, за исключением того, что по умолчанию второй параметр равен 2:
$Var *= 2
Mul($Var)


4) Заключительная арифметическая операция - деление. Для нее есть команда Div, которая без второго параметра делит переменную надвое:
$Var /= 2
Div($Var)

Во всех четырех случаях вторым параметром может стоять переменная. Однако тогда типы обоих переменных должны быть определены в блоке var..end.

5) Процедура SQR вычисляет квадрат переменной. Т.е. она является заменой операции умножения переменной саму на себя:
$Var *= $Var
Sqr($Var)

Тип переменной, как вы надеюсь поняли, должен быть известен компилятору.

6) Функция Random возвращает случайное число в интервале между числами, переданными в качестве параметров. Она представляет собой замену сразу двух опкодов:
0208: $Var = random_float 10.0 100.0
0209: $Var = random_int 10 100

Оба варианта могут быть представлены в виде
$Var = Random(10, 100)

Как видите, компилятор сам выбирает опкод в зависимости от типа переменной, в которую записывается результат функции ($Var). Если ее тип неизвестен, либо это не Integer или Float, компилятор сообщит об ошибке.
В качестве параметров конечно же могут быть и переменные. Однако их тип не проверяется.

7) Следующая команда будет, возможно, трудна для восприятия. Для этого необходимо представлять как в main.scm хранятся переменные и что такое DMA. Это выходит за рамки данной статьи, хотя возможно будет впоследствии описано. Итак, команда Alloc. Она устанавливает адрес памяти для переменной с символьным именем:
Alloc($PLAYER_CHAR, 10)
Переменая $PLAYER_CHAR после этого будет компилироваться как $10.
При помощи команды Alloc вы можете выстроить группу переменных в ряд, превратив их таким образом в элементы массива:
Alloc($Array, 40)
Alloc($Value2, 41)
Alloc($Value3, 42)
Alloc($Value4, 43)

Эти переменные представляют теперь собой массив. Теперь вы можете использовать такой код:
---
Alloc($Array, 40)
Alloc($Value2, 41)
Alloc($Value3, 42)
Alloc($Value4, 43)

var
$Array: array 4 of Integer
$Result: Int
end

---
$Value3 = 100 // в третий элемент массива записываем 100
$Index = 2 // смещение от начала массива -> $Value3, не забывайте, что счет идет от нуля
$Result = $Array[$Index] // будет прочитана третья ячейка, начиная с первого элемента
Player.Money($PLAYER_CHAR) += $Result // + 100
Конечно, здесь можно в качестве альтернативы использовать "чистый" DMA, т.е. цифровые имена переменных ($40, $41, $42 и т.д.), но с символьными именами работать приятнее.

7) Заключительная на сегодня возможность - это замена номеров миссий. Любая миссия запускается командой start_mission . Этот номер определяется в блоке DEFINE MISSION:
DEFINE MISSIONS 135
DEFINE MISSION 0 AT @INITIAL
DEFINE MISSION 1 AT @INITIL2
DEFINE MISSION 2 AT @INTRO

Однако запоминать эти номера не всегда удобно. Поэтому в SB была добавлена возможность заменить номер миссии на ее имя. Имя в данном случае - это имя метки, написанной в этом же блоке. Таким образом, для запуска 2-й миссии достаточно написать
start_mission intro

Для пущего удобства в SB было встроено еще две возможности:
1) замена всех номеров на имена при декомпиляции. Для этого достаточно включить опцию Replace mission numbers [o]
2) можно вызвать список имен нажатием Ctrl+Space. Курсор должен стоять после команды start_mission.


------
Автор: Seemann
E-mail: неизвестно
ICQ: неизвестно
840 Прочтений •  [Sanny Builder: Quick Start. Part 2] [13.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Sanny Builder: Quick Start. Part 2 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 | Донейт | Статистика | Команда | Техническая поддержка