Рандомные мерцающие звезды внутри Displayable
Перейти к навигации
Перейти к поиску
Чтобы использовать функцию, нужно закинуть файл blinkinstars.rpy в папку game проекта. В директории images должны быть star.png и bg_sky.jpg (либо свои файлы - всё настраивается). Можно указать регион, в котором появятся звезды (левый верхний и правый нижний углы), также можно указать количество звезд. Полученный файл можно использовать и в скрипте. Например, так: scene mmbg
# код файла blinkinstars.rpy
init -2:
# мерцание
transform sblink(t=1.0, frm=.0, z=1.0):
alpha frm*.5+.5 zoom z rotate renpy.random.randint(0, 360)
linear t*.5*(1.0-frm) alpha 1.0
linear t*.5 alpha .5
linear t*.5*frm alpha frm*.5+.5
repeat
init -1 python:
# автоматическое объявление
config.automatic_images_minimum_components = 1
config.automatic_images = [' ', '_', '/']
config.automatic_images_strip = ["images"]
# в папке images должна лежать картинка star.png
# функция, приклеивающая к фону несколько мерцающих звездочек
def BlinkinStars(star_count=20, bg = "black", region=None, **properties):
sw, sh = (config.screen_width, config.screen_height)
if region is None:
region = (0, 0, sw, sh)
# регион, в пределах которого будут размещены звезды
# (можно не задавать, тогда на весь экран)
r0x, r0y, r1x, r1y = region
# при необходимости добавляем фон
if bg is None:
data = [(sw, sh)]
else:
data = [(sw, sh), (0, 0), bg]
# мерцающие (несинхронно!) звезды
for i in range(star_count):
frm = renpy.random.random() # начало мерцания
stm = .5+renpy.random.random()*1.5 # время мерцания (0.5..2)
# позиция
y = renpy.random.randint(r0y, r1y)
x = renpy.random.randint(r0x, r1x)
szoom = renpy.random.random() # размер звездочки (0..1)
# добавляем звездочку
iname = "tmpimg" + str(i)
renpy.image(iname, At("star", sblink(stm, frm, szoom)))
data.extend([(x, y), iname])
return LiveComposite(*data)
init:
image mmbg = BlinkinStars(30, "bg sky")
$ style.mm_root.background = "mmbg"
$ style.gm_root.background = "mmbg"
- Ссылка на архив с проектом: test-blinkinstars.zip
- Источник: Renpy для чайников: Рандомные мерцающие звезды внутри Displayable
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Renpy для чайников | Вернуться к началу статьи |