Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

  • Страница 7 из 7
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
Форум о визуальных новеллах » Записи участника » Siel [105]
Результаты поиска

Siel

#91 | Тема: Осколки души (ЗАВЕРШЕНА)
moonfork, спасибо за столь обширный комментарий, где вы указали мои недочеты. Данная новелла - мой первый опыт в этом деле. Возможно, я многого не учла. У меня есть планы по написанию новой новеллы, в которой обязательно будет учтены все возможные ошибки и недочеты, выявленные в данной работе.
Сообщение отредактировал Siel - Вторник, 27/Сен/2016, 19:06
Енот Тян

Siel

#94 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
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
Енот Тян

Siel

#95 | Тема: Результаты
Ну, раз такая пьянка, то и я добавлю несколько слов.
Енот Тян

Siel

#97 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
LaCost, хalign, уalign и хpos, уpos - координаты для кнопок (в основном). Когда ты делаешь свои кнопки через imagebutton нужно указывать их месторасположение.
Код
imagebutton auto "путь к изображению/название_%s.формат" xpos 260 ypos 510 action ShowMenu("название меню")

Цвет текста или цвет имени можно вводить так:
Код
$ p = Character(u"Персонаж", color="#51ea63") - цвет имени;
$ p = Character(u"Персонаж", what_color="#51ea63") - цвет текста.
Сообщение отредактировал Siel - Понедельник, 27/Мар/2017, 11:21
Енот Тян

Siel

#98 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
LaCost,
Цитата LaCost ()
А цвет имени и цвет текста обязательно через две строчки прописывать? Или я могу в одну, через запятую?

Да.
И прописывать код кнопок надо не в script, а в screen. Находите пункт с главным меню и изменяете кнопки там.
Енот Тян

Siel

#101 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
GREY, может это поможет: попробуйте написать код через переменные: пока количество переменных не достигнет пяти (к примеру), то игрок будет возвращаться обратно и обратно пять раз. Вот пример такого кода:
Код

init:
    $ tezt = 0
label start:
...
label looping:
    "Слова"
    $ tezt = tezt+1
    "Слова"
    if tezt == 5:
        "Слова"
        jump (название)
    else:
         jump looping
Сообщение отредактировал Siel - Суббота, 08/Апр/2017, 19:15
Енот Тян

Siel

#104 | Тема: Помощь по Ren'Py (Вопрос\Ответ)
Есть такой вопрос: например, мне нужно сделать анимированый спрайт. Я ввожу такой код:
Код
image sprites = Animation("sprite1.png", 0.2,
                    "sprite2.png", 0.2,)

Можно ли сделать так, что бы sprite1 сменялся на sprite2 с использованием эффекта dissolve?
Енот Тян
Форум о визуальных новеллах » Записи участника » Siel [105]
  • Страница 7 из 7
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
Поиск: