Урок + Демо по ККИ

  • akito66
  • Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
Проект месяца 2 место Композитор Разработчик Даритель Стимкея Проект месяца 3 место Организатор конкурсов Оратор Паладин Учитель Ветеран Проект месяца 1 место
Больше
5 года 7 мес. назад - 5 года 7 мес. назад #119467 от akito66
akito66 создал тему: Урок + Демо по ККИ
Сегодня мне бы хотелось продолжить разговор о псевдослучайных событиях в рамках создания вещей непредусмотренных движком 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
Последнее редактирование: 5 года 7 мес. назад пользователем akito66.
Спасибо сказали: Kerotan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • akito66
  • Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • В Иркутске пески холодные, но когда ты рядом, мне становится теплее.
Проект месяца 2 место Композитор Разработчик Даритель Стимкея Проект месяца 3 место Организатор конкурсов Оратор Паладин Учитель Ветеран Проект месяца 1 место
Больше
5 года 7 мес. назад - 5 года 7 мес. назад #119470 от akito66
akito66 ответил в теме Демо ККИ
Дополнительно система вычитания параметров, она нужна для столкновения карт по параметрам и понимании останется она на следующий ход или нет:

ВНИМАНИЕ: Спойлер!


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

ВНИМАНИЕ: Спойлер!


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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.094 секунд
Работает на Kunena форум