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

  • Страница 1 из 1
  • 1
Ребята помогите

GREY

#1
Ребята... карочи... такая проблема. Пробую создать слайдер. Что бы в игре можно было выбрать аватарку.
В файле script.rpy объявил переменную:
$ avatar = 0

Дальше, вывожу на экран две стрелки, на которые кликая, должна меняться аватарка:
В файле script.rpy
show screen avatar_left_change
show screen avatar_right_change

Создал новый файл btn.rpy. В котором рисую эти стрелки
screen avatar_left_change:
imagebutton auto "images/btn/avatar_left_%s.png" xpos 494 ypos 30 focus_mask True action Show("avatar_left")
screen avatar_right_change:
imagebutton auto "images/btn/avatar_right_%s.png" xpos 894 ypos 30 focus_mask True action Show("avatar_right")

Ну и прописываю их action
screen avatar_right():
$ avatar += 1

if avatar == 1:
add "images/avatar/1.png" xalign 0.5 yalign 0.3
elif avatar == 2:
add "images/avatar/2.png" xalign 0.5 yalign 0.3
elif avatar == 3:
add "images/avatar/3.png" xalign 0.5 yalign 0.3
—------------------------------------
screen avatar_left():
$ avatar -= 1

if avatar == 1:
add "images/avatar/1.png" xalign 0.5 yalign 0.3
elif avatar == 2:
add "images/avatar/2.png" xalign 0.5 yalign 0.3
elif avatar == 3:
add "images/avatar/3.png" xalign 0.5 yalign 0.3
----------------------------------------
Вообщем, проблема заключается в том что, переменная $ avatar не переписывается, она как была 0... так и остаётся. То есть... допустим я нажал в право... он увеличил на 1... но не переписал новое значения. Мои недельные знания Renpy, не позволяют мне решить эту проблему... (( Буду признателен за помощь.
Просто Бог

TGrave

#2
Как я понимаю, проблема в том, что напрямую из скринов глобальные переменные не изменить. Вот цитата от автора Ren'Py:
Цитата
A problem is that screen code can be run at arbitrary times for the purpose of predicting and loading images. So if it was to update globals, that could happen unexpectedly.

Тем не менее, "если нельзя, но очень хочется", должно сработать такое решение:
Код

screen avatar_right():
    on "show" action SetVariable("avatar", avatar + 1)

GREY

#3
Работает, спасибо. Только это надо писать не в функции, а при создания кнопки
screen avatar_left_change:
       imagebutton auto "images/btn/avatar_left_%s.png" xpos 494 ypos 30 focus_mask True  action SetVariable("avatar", avatar - 1), Show("avatar_left")
Сообщение отредактировал GREY - Воскресенье, 18/Дек/2016, 11:01
Просто Бог

GREY

#4
Вот весь код, с проверкой на 0 и на макс (В моём случае это 13).

Кнопки прописываются в script.rpy
Код
    show screen avatar_left_change
    show screen avatar_right_change


Это в отдельном файле писал.
Код
creen avatar_left_change:
        if avatar == 1:
            imagebutton auto "images/btn/avatar_left_%s.png" xpos 494 ypos 30 focus_mask True  action SetVariable("avatar", 13), Show("avatar_left")
        elif avatar > 1:
            imagebutton auto "images/btn/avatar_left_%s.png" xpos 494 ypos 30 focus_mask True  action SetVariable("avatar", avatar - 1), Show("avatar_left")

screen avatar_right_change:
        if avatar == 13:
            imagebutton auto "images/btn/avatar_right_%s.png" xpos 600 ypos 30 focus_mask True  action SetVariable("avatar", 1), Show("avatar_right")
        elif avatar >= 1:
            imagebutton auto "images/btn/avatar_right_%s.png" xpos 600 ypos 30 focus_mask True  action SetVariable("avatar", avatar + 1), Show("avatar_right")
          
    screen avatar_right():
        if avatar == 1:
            add "images/avatar/1.png" xalign 0.5 yalign 0.3
        elif avatar == 2:
            add "images/avatar/2.png" xalign 0.5 yalign 0.3
        elif avatar == 3:
            add "images/avatar/3.png" xalign 0.5 yalign 0.3        
        elif avatar == 4:
            add "images/avatar/4.png" xalign 0.5 yalign 0.3       
        elif avatar == 5:
            add "images/avatar/5.png" xalign 0.5 yalign 0.3  
        elif avatar == 6:
            add "images/avatar/6.png" xalign 0.5 yalign 0.3
        elif avatar == 7:
            add "images/avatar/7.png" xalign 0.5 yalign 0.3        
        elif avatar == 8:
            add "images/avatar/8.png" xalign 0.5 yalign 0.3       
        elif avatar == 9:
            add "images/avatar/9.png" xalign 0.5 yalign 0.3  
        elif avatar == 10:
            add "images/avatar/10.png" xalign 0.5 yalign 0.3
        elif avatar == 11:
            add "images/avatar/11.png" xalign 0.5 yalign 0.3        
        elif avatar == 12:
            add "images/avatar/12.png" xalign 0.5 yalign 0.3       
        elif avatar == 13:
            add "images/avatar/13.png" xalign 0.5 yalign 0.3   
        
    
    screen avatar_left():
        if avatar == 1:
            add "images/avatar/1.png" xalign 0.5 yalign 0.3
        elif avatar == 2:
            add "images/avatar/2.png" xalign 0.5 yalign 0.3
        elif avatar == 3:
            add "images/avatar/3.png" xalign 0.5 yalign 0.3        
        elif avatar == 4:
            add "images/avatar/4.png" xalign 0.5 yalign 0.3       
        elif avatar == 5:
            add "images/avatar/5.png" xalign 0.5 yalign 0.3  
        elif avatar == 6:
            add "images/avatar/6.png" xalign 0.5 yalign 0.3
        elif avatar == 7:
            add "images/avatar/7.png" xalign 0.5 yalign 0.3        
        elif avatar == 8:
            add "images/avatar/8.png" xalign 0.5 yalign 0.3       
        elif avatar == 9:
            add "images/avatar/9.png" xalign 0.5 yalign 0.3  
        elif avatar == 10:
            add "images/avatar/10.png" xalign 0.5 yalign 0.3
        elif avatar == 11:
            add "images/avatar/11.png" xalign 0.5 yalign 0.3        
        elif avatar == 12:
            add "images/avatar/12.png" xalign 0.5 yalign 0.3       
        elif avatar == 13:
            add "images/avatar/13.png" xalign 0.5 yalign 0.3  

Сообщение отредактировал GREY - Воскресенье, 18/Дек/2016, 11:27
Просто Бог
  • Страница 1 из 1
  • 1
Поиск: