Анатолий Адонин

Анатолий Адонин 

Разработка на Python / Renpy

413subscribers

116posts

Showcase and bundles

16
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.

63 Рандом и генерация случайных чисел

На движке Renpy, как и на языке Python, есть несколько вариантов рандомизации. С некоторыми из них мы встречались в предыдущих уроках. Сегодня разберёмся, как они работают, и в каких ситуациях их можно использовать.
По сути движок берёт соответствующие функции из модуля random и использует их также как в языке Python. Так как обращение происходит непосредственно к "питону", необходимо указать соответствующие символы $ или python:
На примере выше функция рандома выбирает случайное число от 0 до 1, которое сохраняется в переменной и далее используется для определённых целей.
Кроме того, можно установить свои два числа, в диапазоне которых будет выбрано случайное число:
Обратите внимание, для этого используется отдельная функция randint, которая выбирает случайное целое число (не дробное). Как видно из примера выше, данная функция часто используется для имитации броска кубика, или для выбивания случайного числа из нужного диапазона. Например, противник может нанести случайный урон от 40 до 555.
Следующий вариант рандома - randrange, позволяет задать диапазон с помощью одного числа. То есть, движок выберет число от 0 до указанного числа.
Обратите внимание, что будет выбрано одно число из десяти. Само число 10 является одинадцатым в числовом ряде, поэтому оно не попадает в функцию выбора.
Также randrange позволяет установить диапазон чисел и шаг между числами, чтобы выбирались, например, только чётные числа или только не чётные. Для этого в скобках указывается третье число, которое определяет шаг. То есть, начиная с первого числа диапазона будет случайным образом выбрано каждое второе или третье.
Функция рандома choice() позволяет выбрать случайный элемент из предложенного списка элементов. В предыдущем уроке с боевой системой, с помощью этой функции противник выбирал одно из двух направлений атаки.
Квадратные скобки в Python указывают на список объектов, которые размещаются внутри через запятую. Списки могут содержать, числа, строки, изображения, булевы значения и любые другие объекты.
Функция choice() выбирает один из элементов списка случайным образом, который мы можем использовать далее.
Также можем выбрать случайный элемент из ранее созданного списка:
Функция sample() позволяет выбрать несколько элементов из списка. Обратите внимание, что один и тот же элемент не будет выбран повторно.
Функция choices() также позволяет выбрать несколько элементов из списка, но каждый объект может быть выбран повторно. Общее количество выпавших элементов указывается в параметре k=.
Кроме того, choices() позволяет установить вероятность выпадения каждого отдельного элемента. Например, обычные вещи могут выпасть с вероятностью 70%, редкие с вероятностью 25%, а легендарные - 5%.
Функция uniform(0.0, 9.9) позволяет выбрать случайное дробное число в определённом диапазоне. Например, в предыдущих уроках мы запускали астероид по экрану или устанавливали скорость анимации кулака противника. С помощью данной функции таким анимациям можно задать случайную скорость.
****
Код из урока:
rpy
random.rpy5.60 Kb
****
Предыдущий урок:
62 Пошаговая боевая система на Renpy
Следующий урок:
64 Как добавить видео в Renpy
Все уроки здесь
Subscription levels3

Личный состав

$0.97 per month
Участник экспедиции

Колонист

$2.58 per month
С комфортом до Бетельгейзе

Штурман

$5.2 per month
Штурмуем геймдев - Пошаговые уроки с нуля до профи
Учимся создавать игры на Renpy
Программируем на Python
Go up