Динамическая картинка

Просто еще один примитивный пример картинки, зависящей от значения какой-то переменной. Например, от здоровья.



init python:
    # окно игры в центре экрана
    import os
    os.environ['SDL_VIDEO_CENTERED'] = '1'
    # автоматическое объявление изображений
    config.automatic_images_minimum_components = 1
    config.automatic_images = [' ', '_', '/']
    config.automatic_images_strip = ['images']
    # здоровье
    health = 100
    
init:
    image red = "#8008"
    # анимированные головы в разном состоянии, зыркающие в стороны
    image head0 = Animation("head0x1", .5, "head0x0", .2, "head0x1", .5, "head0x2", .2)
    image head1 = Animation("head1x1", .5, "head1x0", .2, "head1x1", .5, "head1x2", .2)
    image head2 = Animation("head2x1", .5, "head2x0", .2, "head2x1", .5, "head2x2", .2)
    python:
        # изменение морды лица в зависимости от здоровья
        def show_head(st, at):
            i = "0"
            if health < 65:
                i = "1"
            if health < 35:
                i = "2"
            if health <= 0:
                i = " dead"
            return "head" + i, None
    # финальная голова, с привязкой к здоровью
    image head = DynamicDisplayable(show_head)
# экран с харей
screen info:
    add "head" pos(15, 15)
    text _(str(int(health)) + "%") pos(150, 15) size 36 color "#f00d" outlines [(2, "#fff8", 0, 0)]

# Игра начинается здесь.
label start:
    scene bg
    show screen info
    "Сейчас здоровье будет убывать."
    while health > 0:
        $ health -= 2.5
        show red
        pause .1
        hide red with Dissolve(.1)
    "Кирдык..."
    return

Комментарии