Оператор Add и как добавить изображение в глав меню
Данный оператор позволяет добавлять в экран изображения.
Например, если изображение прописано
· image logo base ="images/logotip.jpg"
·
· screen add_image_example():
· add "logo base"
Так же можно в нем прописать и анимации, со всеми объектами и трансформациями.
Или указав путь к изображению
· screen add_filename_example():
· add "images/logo base.png"
Так же в нем можно прописывать различные трансформации
· screen add_at_transform_example():
· add "logo base" at unrotate
·
· transform unrotate:
· zoom 0.7 rotate 43.21
· linear 1.0 rotate 0
Как прописать изображения в главное меню?
Для этого вам потребуется открыть screen . rpy . найти строку screen main_menu: и там у вас будет записан экран главного меню, там вы пишете изображение
· screen main_menu():
· # This ensures that any other menu screen is replaced.
· tag menu
·
· # The background of the main menu.
· add "images/logotip_fona.jpg"
·
· textbutton _("Новая игра") action Start()
· textbutton _("Загрузить") action ShowMenu("load")
· textbutton _("Настройки") action ShowMenu("preferences")
· textbutton _("Помощь") action Help()
· textbutton _("Выйти") action Quit(confirm=False)
Тоже самое относится и к другим разделам главного меню(загрузки, настройки и т.д)
Оператор text
Данный оператор прописывает текст на экране.
· screen text_example():
· frame:
· xalign 0.5 ypos 50
· text _(" Текст на экране "):
· size 30
Если после текста мы поставим : то мы можем прописать различные параметры.
|
|
Так же в нем можно прописать значения переменной.
· screen text_interpolation_example():
· $ answer = 42
·
· frame:
· xalign 0.5 ypos 50
· text _(" Ответ: [answer].")
Как прописывать координаты объектам?
· screen implicit_fixed_example():
· frame:
· xalign 0.5 ypos 50
· xsize 440 ysize 316
·
· text "1" xpos 41 ypos 184
· text "2" xpos 135 ypos 177
· text "3" xpos 92 ypos 3
· text "4" xpos 359 ypos 184
· text "5" xpos 151 ypos 25
Оператор on
Данный оператор запускает автоматически событие при его вызове. В нижнем примере будет 2 события: событие show (экран впервые показывается) и событие hide(экран убирается)
· screen on_screen():
· on "show" action Notify(_("Появился экран"))
· on "hide" action Notify(_("Экран убрали"))
· label start:
· schow screen on_screen
· " Привет "
· hide screen on_screen
· " Пока "
Как видим, данный экран появляется 1 раз, и через несколько секунд текст исчезает.
А как изменить Notify?
Изображение, которое отвечает за него, находится по адресу gui/notify.png
Что бы прописать координаты зайдите в screen.rpy и найдите такую строку и изменяете на свое усмотрение
screen notify(message):
Zorder 100
style_prefix "notify"
frame at notify_appear:
Text message
|
|
Timer 3.25 action Hide('notify')
transform notify_appear:
on show:
Alpha 0
Linear .25 alpha 1.0
on hide:
Linear .5 alpha 0.0
Style notify_frame is empty
Style notify_text is gui_text
style notify_frame:
Ypos gui.notify_ypos
background Frame("gui/notify.png", gui.notify_frame_borders, tile=gui.frame_tile)
Padding gui.notify_frame_borders.padding
style notify_text:
properties gui.text_properties("notify")
Оператор Key
Данный оператор позволяет вызывать события нажатием клавиши на клавиатуре.
· screen on_key_screen():
· frame:
· xalign 0.5 ypos 50
· text _("Нажмите на англ букву' a '.")
· key "a" action Notify(_(" Вы нажали на анг А "))
Питон очень чувствителен к тому, какой раскладкой клавиатуры вы нажали и не активирована ли Caps Lock . Например, в выше написанном примере буква а, будет активна, только на английской раскладке при отключенном Caps Lock. Что бы она правильно работала на русской (или китайской и т.д.) клавише нам потребуется прописать все варианты значений (Заглавную, маленькую, и на другом языке).
· screen on_key_screen():
· frame:
· xalign 0.5 ypos 50
· text _("Нажмите на англ букву'a'.")
· key "a" action Notify(_("Вы нажали на А"))
· key "A" action Notify(_("Вы нажали на А"))
· key "Ф" action Notify(_("Вы нажали на А"))
· key "ф" action Notify(_("Вы нажали на А"))
|
|
Так же обратите внимание, что данный оператор работает только на тех устройствах, у которых есть клавиатура или джойстик. Если вы собираетесь адаптировать проект на планшет то вам придется еще прописывать кнопку в экране, ибо на андроиде или айфонах нет клавиш(если конечно не подключено какое ни будь устройство к телефону, такие как джойстик на очках вирт реальности и т.д.)
Список всех клавиш(плюс там же другие устройста джостики и т.д…)
http://www.pygame.org/docs/ref/key.html (учитывайте что там только анг раскладка прописана)
Так же прописываются к оператору данному функции при действии ссылка
Обьекты box и grid
Объект box берет объекты и располагает их так, как мы укажем box. Очень часто применяется при написании кнопок или нескольких значений которые мы должны отобразить на экране(настройки и т.д)
Примеры с hbox где объекты горизонтально ставятся.
· screen hbox_example():
· frame:
· xalign 0.5 ypos 50
· hbox:
· spacing 10
· text "1"
· text "2"
· text "3"
· text "4"
· text "5"
Где spacing расстояние между объектами
А объект vbox действует вертикально
Объект Grid создает таблицы.
|
|
· screen grid_example():
· frame:
· xalign 0.5 ypos 50
· grid 3 2:
· spacing 10
· text "1"
· text "2"
· text "3"
· text "4"
· text "5"
· null
Разберем подробней, что тут прописано
screen grid _ example ():-имя экрана
frame : - прописываем положение и создаем рамку
xalign 0.5 ypos 50 – координаты
grid 3 2: - создаем таблицу, в которой будет 3 столба в 2 строки, где нам потребуется прописать 6 объектов (т.к. 3*2=6) иначе возникнет ошибка. И в нем прописываем объекты (двоеточие)
spacing 10 – параметр, которое делаетрасстояние между объектами
text "5" – 1 из объектов
null – пустая ячейка, применяется, когда объекта еще нет, но он должен будет появиться и что бы ни было ошибки, пишут данный объект.
Так же если вам требуется сделать другое расположение заполнения(т.е. таблица заполняется горизонтально, а если нужно вертикально то прописывают данного оператора) то используют параметр transpose
· screen grid_transpose_example():
· frame:
· xalign 0.5 ypos 50
· grid 3 2:
· spacing 10
· transpose True
· text "1"
· text "2"
· text "3"
· text "4"
· text "5"
· null
Обратите внимание! В гриде, все объекты делят расстояние на свои размеры, т.е. если 1 объект назвать, например не 4, а словом бабуля, то расстояние будет вычисляться по самому длинному названию, т.е. от бабули будут рассчитываться положения на экране. Учитывайте это когда будете создавать свои таблицы.
Ну и пример еще один .
Текстовые кнопки
Кнопки – это такие объекты, которые при нажатии активируют действие.
Прописываются в экранах.(screen)
Разберем пример самой простейшей тестовой кнопки.
· screen button_hover_example():
· frame:
· xalign 0.5 ypos 50
· button:
· action Notify (_("Ты нажал на кнопку"))
· hovered Notify (_("Ты навел на кнопку"))
· unhovered Notify(_(" Ты отвел кнопку "))
· text _(" Кликни на меня ") style "button_text"
screen button_hover_example():-экран с кнопкой
frame: -рамка
xalign 0.5 ypos 50 –координаты экрана
button : - кнопка, в которой прописываем ее действия и внешний вид
action Notify (_("Ты нажал на кнопку")) –при нажатии(action ) произойдет событие(Notify (_("Ты нажал на кнопку"))) – в данном случае высветится надпись уведомления(Notify )
hovered – при наведении произойдет событие(обычно используется что бы пояснять комментариями что произойдет при нажатии)
unhovered – как уберете кнопку, произойдет событие(используется довольно часто, когда пользователю предстоит выбор)
text _ - тут мы программе указываем что у нас будет текст в виде кнопки
Или еще пример
· screen vibor ():
· frame:
· xalign 0.5 ypos 50
·
· has vbox
·
· text "Кого вы спасете?"
·
· textbutton _("Женщина."):
· action Jump("Dev")
· hovered Notify (_("Ты хочешь спасти девушку?"))
· unhovered Notify (_("А как ты потом матери в глаза смотреть будешь?"))
·
· textbutton _("Ребенок"):
· action Jump("Kind")
· hovered Notify (_("Ты хочешь спасти ребенка?"))
· unhovered Notify (_("А как ты потом ему объяснишь Где мама?"))
где Jump (" Kind ")прыжок в метку(label) Kind
Дата добавления: 2018-10-27; просмотров: 822; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!