Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Урок + Демо по ККИ

Урок + Демо по ККИ 4 года 3 мес. назад #119467

  • akito66
  • akito66 аватар
  • Вне сайта
  • Светлый дракон
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
  • Сообщений: 851
  • Спасибо получено: 1511
  • Организатор конкурсовПроект месяца 2 местоРазработчикОраторПроект месяца 1 местоВетеранКомпозиторПроект месяца 3 местоДаритель СтимкеяУчитель
Сегодня мне бы хотелось продолжить разговор о псевдослучайных событиях в рамках создания вещей непредусмотренных движком RPG Maker VX Ace. Для начала определимся где именно будет использоваться рандом. Для начала он будет выдавать карты соперника и игрока из колоды. Для этого нам нужно занести в переменные значение карт. Условно разделим их на категории.
Скажем будет так:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Для примера нам хватит и таких значений. Создаем условно две такие колонки в разных секциях.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

В одной мы будем хранить общее число карт того или иного вида, а во второй будем приравнивать в начале боя, чтобы не раздать больше чем у нас есть в колоде.
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Далее мы вызываем общие события, давайте на них остановимся подробнее:


ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]



Каждая карта на поле имеет Атаку и Защиту. 4 Для Игрока и 4 для ИИ.
Сравнивая их и вычитая. Мы узнаем какие карты убрать с поля, а какие оставить.

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Так же стоит разобрать отдельно скрипт: if $game_variables[383]==2
screen.pictures[$game_variables[383]].show('k01', 0, -52, -50, 50, 50, 255,0)
$game_variables[490]=1
$game_variables[494]=2
end

Если вы знакомы со скриптами, то можете пропустить этот пункт.

screen.pictures[index].show(name, position, x, y, x zoom, y zoom, opacity, blend type)
index - индекс картинки
name - имя файла
позиция - position = [0] по краю, [1] по центру
x, y - координаты
x zoom, y zoom - увеличение по x, y = масштаб
opacity - прозрачность, для непрозрачности ставится 255
смешивание - blend type = [0] обычное, [1] добавление, [2] замещение.



$game_variables[n] = 'text', где n-номер переменной, а text-собственно текст. Можно использовать для паролей, храня их в переменных, а не в именах героев или записать в переменные, например, окончания слов. Тогда можно будет сделать различное обращение к персонажам мужского и женского пола.

$game_variables[383] Этим скриптом мы задаем переменную которая будет накладывать слой картинки.
$game_variables[490]=1 Этим скриптом задаем атаку карты
$game_variables[494]=2 Этим скриптом жизни карты

Очень важно помнить, что из-за наложенного фона, нумерация карт будет сдвинута.

Также нам нужна проверка условия и отображение или исчезновение карты с поля. Для этого служит следующее общее событие:


ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Разберем по порядку:
Переменные
Card game - регулирует управление цифрами (для этого подключен скрипт Full Keyboard Module Autor: Raizen)
Card steep и Card steep enemy позволяют регулировать ходы игрока и ИИ.
Dex и счетчик карт, запускают событие по вытаскиванию уникальной карты (в нашем случае Фелиса).


ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Проверяем каждую карту на отсутствие на поле, после чего в нее пишем карту Фелиса. (в случае если карта занята, то добавляем его в скрипт взятия из колоды).
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Смотрим на исполнение скрипта, если карты отсутствуют то на их место записываем одну из карт. Можно добавить условие
на шанс выпадения. Скажем задавать диапазон значений. Или сделать выключатель на уникальное выпадение.


ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


После него, можно вызывать событие повторно, с выключателем равным off.
Тогда колода доберется недостающими картами.

После того проверяем остаток карт Игрока и ИИ.

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


И в зависимости от сложности решаем кто выиграл.
В перспективе можно так же добавить награды, выпадение карт случайным образом и другое.

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]





Demo

cloud.mail.ru/public/3sxZ/4rL8FPyZS
Последнее редактирование: 4 года 2 мес. назад от akito66.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan

Демо ККИ 4 года 3 мес. назад #119470

  • akito66
  • akito66 аватар
  • Вне сайта
  • Светлый дракон
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
  • Сообщений: 851
  • Спасибо получено: 1511
  • Организатор конкурсовПроект месяца 2 местоРазработчикОраторПроект месяца 1 местоВетеранКомпозиторПроект месяца 3 местоДаритель СтимкеяУчитель
Дополнительно система вычитания параметров, она нужна для столкновения карт по параметрам и понимании останется она на следующий ход или нет:

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


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

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Чего еще нужно сделать:
1) Систему динамического отображения статов карты.
2) 8 таймеров для отсчета ходов каждой карты, чтобы они не сразу могли атаковать.
Последнее редактирование: 4 года 2 мес. назад от akito66.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kerotan
Время создания страницы: 0.173 секунд