Пользователи · Новые посты · Правила форума · Поиск по форуму · · · Регистрация
Страница 21 из 21«12192021
Форум о визуальных новеллах » Форум о визуальных новеллах » Ren'Py » Помощь по Rep'Py (Вопрос\Ответ)
Помощь по Rep'Py (Вопрос\Ответ)
TERNOXДата: Вторник, 30.09.14, 21:50 | Сообщение # 1
Администратор
Сообщений: 329
Награды: 35
Репутация: 477
Статус: Не в сети
Сюда пользователи сайта могут писать вопросы о тех или иных функциях движка Ren'Py, а мы попытаемся на них ответить:)


Я у мамы ямаман.
totalДата: Понедельник, 02.01.17, 15:30 | Сообщение # 301
Разработчик новелл
Сообщений: 68
Награды: 0
Репутация: 16
Замечания: 0%
Статус: Не в сети
я тут заморочился сделать прокрутку в окне save load
через viewport же. и в нем grid
Так вот, последняя строка сетки полностью не помещается, какие бы размеры я не задавал

Код
$ columns = 3
    $ rows = 6

    frame:
        style_group 'saveload'
        xpos 710
        ypos 156
        ymaximum 700
      
        
        viewport id "sl":
            mousewheel True
            area (0,20,1200,750)
            child_size (1200, 750)  ##- вот это НЕ решает проблему
            
           
                
            grid columns rows:
                transpose False
                xfill False
                yfill False
                spacing 40
            
    

                for i in range(1, columns * rows + 1):
                    button:
                        xpos 35
                        ypos 35
                        xminimum 330
                        xmaximum 330
                        ymaximum 200
                       background "images/interface/saveload/slot_empty.png"
                        foreground "images/interface/saveload/slot_empty.png"
                        hover_foreground "images/interface/saveload/slot_hover.png"
                        action FileAction(i)

                        add FileScreenshot(i) yoffset 1 xoffset -10
                    
                        $ file_name = FileSlotName(i, columns * rows)
                        $ file_time = FileTime(i, empty=_("Пусто"))
                        $ save_name = FileSaveName(i)
                    
                        text "{b}[file_name]. [file_time!t]\n[save_name!t]{/b}" size 24 ypos 180 xalign 0.58 color "#000"
                        key "save_delete" action FileDelete(i)
                
                    
        add "images/interface/options/vbar.png" xpos 1150
        vbar xpos 1150 ymaximum 820 idle_top_bar None idle_bottom_bar None idle_thumb "images/interface/options/polzunok_vbar.png" hover_thumb "images/interface/options/polzunok_vbar.png"  value YScrollValue("sl")


как сделать отступ снизу сетки в viewport'е?


Сопредельные Острова
dmitДата: Понедельник, 02.01.17, 18:58 | Сообщение # 302
Проверенный
Сообщений: 55
Награды: 0
Репутация: 5
Замечания: 0%
Статус: Не в сети
Попробуйте:
Код
frame:
        style_group 'saveload'
        xpos 710
        ypos 0 #мжб вы сдвинули фраме за границу экрана?
        ymaximum 700
      
        
        viewport id "sl":
            scrollbars "vertical" # бегунок покажет где низ viewport


планета FOREVER!!!
totalДата: Понедельник, 02.01.17, 19:57 | Сообщение # 303
Разработчик новелл
Сообщений: 68
Награды: 0
Репутация: 16
Замечания: 0%
Статус: Не в сети
не, фрейм точно в пределах экрана. скроллбар показывает всё верно, а вот примерно треть нижнего ряда не помещается, такие дела

Сопредельные Острова
dmitДата: Понедельник, 02.01.17, 21:18 | Сообщение # 304
Проверенный
Сообщений: 55
Награды: 0
Репутация: 5
Замечания: 0%
Статус: Не в сети
Вызывает сомнения всякие отступы ypos, spacing ... В стиле grid возможно тоже они присутствуют. по видимому что-то не учитывается. Без grid такого не наблюдается.
Ну если решить не заморачиваясь, то вставьте после grid пустой элемент - подтолкните grid.
типа:
has vbox
grid columns rows:
.....
.....
image Null(64, 64)


планета FOREVER!!!

Сообщение отредактировал dmit - Понедельник, 02.01.17, 21:21
totalДата: Вторник, 03.01.17, 08:09 | Сообщение # 305
Разработчик новелл
Сообщений: 68
Награды: 0
Репутация: 16
Замечания: 0%
Статус: Не в сети
о да, это реально решило! я думал о пустом элементе, но как о строке в таблице. А так даже проще. Спасибо

Сопредельные Острова
nastia_mankoДата: Понедельник, 09.01.17, 23:48 | Сообщение # 306
Проверенный
Сообщений: 14
Награды: 1
Репутация: 8
Замечания: 0%
Статус: Не в сети
Просто интересуюсь:
Как сделать мини-игру с задрочкой кнопки,как в 3 трояне?


Грибы форевер, сучечки! >:D
JosephEaДата: Вторник, 10.01.17, 03:27 | Сообщение # 307
Пользователь
Сообщений: 2
Награды: 0
Репутация: 0
Замечания: 0%
Статус: Не в сети
Alco Barrier – эффективное средство, которое выводит токсины из организма после принятия спиртного и быстро восстанавливает организм.
Перейти на сайт: http://alko.1stbest.info/
SielДата: Четверг, 12.01.17, 11:21 | Сообщение # 308
Проверенный
Сообщений: 95
Награды: 0
Репутация: 11
Замечания: 0%
Статус: Не в сети
nastia_manko, вот код)
Код
init python:
    # окно игры в центре экрана
    import os
    os.environ['SDL_VIDEO_CENTERED'] = '1'
    # автоматическое объявление изображений
    config.automatic_images_minimum_components = 1
    config.automatic_images = [' ', '_', '/']
    config.automatic_images_strip = ['images']
    # вспышка
    flash  = Fade(.25, 0, .5, color="#fff")
    flash2 = Fade(.25, 0, .5, color="#222")

# настройки игры:
    # максимальное значение шкалы
    max_points = 100
    # название картинки (без нумерации кадров)
    img_name = "n"
    # первый и последний кадры анимации
    minN = 1
    maxN = 14
    # значение, на которое прибавляется шкала при клике
    # (т.е. сложность игры. 2.0 - очень сложно, 3.0 - легко)
    points_plus = 2.5

# переменные по умолчанию
    # при желании можно поменять и это значение,
    # чтобы точнее подобрать баланс игры
    points_minus = 1.0
    # допустимое время между кликами или
    # скорость анимации (время между сменой кадров)
    ani_time = .1
    # текущий кадр
    number = 0
    # инкремент кадра (+1/-1)
    plus = 1
    # шкала, которую нужно заполнить
    points = 0
    # недавно был клик
    clicked = True
    # смена кадров анимации, если клик был недавно
    # и перерисовка экрана, чтобы увидеть изменения
    def NextFrameF():
        global points, number, plus, clicked
        # если клик был недавно, то продолжаем анимацию,
        # иначе следующего кадра не будет. пауза
        if clicked:
            # следующий/предыдущий кадр
            number += plus
            # если за пределы числа кадров, то анимация в обратную сторону
            if number > maxN:
                number = maxN - 1
                plus = -plus
            if number < minN:
                number = minN + 1
                plus = -plus
        # уменьшение шкалы, если давно не было клика
        points -= points_minus
        if points < 0:
            points = 0
        clicked = False
        # перерисовка экрана
        renpy.restart_interaction()
    # функция → action
    NextFrame = renpy.curry(NextFrameF)

# экран игры
screen clicker:
    # это чтобы игра не продолжилась по клику мышкой
    modal True
    # сбрасываем настройки игры при появлении экрана
    on "show" action [SetVariable("number", 0), SetVariable("plus", 1), SetVariable("clicked", True)]
    # меняем кадр, если клик был недавно,
    # и проверяем на проигрыш
    timer ani_time repeat True action [NextFrame(), If(points <= 0, true=Return(False), false=NullAction())]
    # картинка с анимацией
    add img_name + str(number)
    # отображаем невидимую кнопку для кликов
    # по нажатию прибавляем шкалу и устанавливаем флаг клика
    button:
        text _(" ")
        xfill True
        yfill True
        background "#00000001"
        # если шкала полная, то конец игры, победа
        action [SetVariable("points", points + points_plus), SetVariable("clicked", True), If(points >= max_points, true=Return(True), false=NullAction())]
    # альтернативное нажатие с клавиатуры
    key "K_SPACE" action [SetVariable("points", points + points_plus), SetVariable("clicked", True), If(points >= max_points, true=Return(True), false=NullAction())]
    # индикатор
    vbar value StaticValue(points, max_points):
        align (0, 0) # положение на экране
        maximum (150, 150) # размеры
        left_bar "heartempty" # пустое сердце
        right_bar "heart" # полное сердце
        thumb None # тут можно поставить разделитель
        thumb_shadow None # и тень

label start:
    # всякие ненужные штуки для оформления
    scene expression (img_name + "0")
    pause .5
    show expression Text("Приготовились!") at truecenter as txt
    with dissolve
    pause
    hide txt
    # начать с 10 очков, чтобы не проиграть сразу же
    $ points = 10

    # ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
    call screen clicker # ←  игра
    # ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

    # дальше снова пошли всякие ненужные вещи:
    # показываем результаты игры
    if _return:
        # перематываем анимацию до последнего кадра
        while number < maxN:
            $ number += 1
            scene expression (img_name + str(number))
            $ renpy.pause(ani_time, hard=True)
        scene expression (img_name + str(maxN))
        with flash
        show expression Text("Победа!") at truecenter as txt
    else:
        # перематываем анимацию до первого кадра
        while number > 1:
            $ number -= 1
            scene expression (img_name + str(number))
            $ renpy.pause(ani_time, hard=True)
        scene expression (img_name + "0")
        with flash2
        show expression Text("Проигрыш.") at truecenter as txt
    # жесткая пауза на случай, если игрок всё еще лупит по кнопке
    $ renpy.pause(1.0, hard=True)
    hide txt
    with dissolve
    return


Рanda graphic group
Енот Тян
Форум о визуальных новеллах » Форум о визуальных новеллах » Ren'Py » Помощь по Rep'Py (Вопрос\Ответ)
Страница 21 из 21«12192021
Поиск: