Возникла проблема в Ursina: Действия по нажатию кнопки не срабатывают, как бы я не делал.

Daniel Nine

Новичок
Пользователь
Дек 30, 2022
2
0
1
# |Ниже сам код, я там создаю кнопку через класс и без него, ни то ни другое не хочет делать какое-либо действие по нажатии! Кто знает как решить проблему, помогите пожалуйста.
from ursina import *
from ursina import Button

def Clicked():
print("Pressed!")

class BG(Entity):
def __init__(self):
super().__init__(
parent = camera.ui,
model = 'quad',
scale = (0.86*1.8, 0.56*1.8),
texture = load_texture('assets/bg-menu.png'),
texture_scale = (6,4))

class LogoName(Entity):
def __init__(self):
super().__init__(
parent = camera.ui,
model = 'quad',
texture = load_texture('assets/logo-name.png'),
scale = (0.7, 0.25),
position = (0,0.4,0))


class StartButton(Button):
def __init__(self):
super().__init__(
parent = camera.ui,
model = 'quad',
text = 'Start',
texture = load_texture('assets/button.png'),
scale = (0.3,0.1),
color = color.white10,
highlight_color = color.white10,
pressed_color = color.white33,
on_click = StartGame(),
)



app = Ursina(borderless=False)
window.size = (860, 560)
bg = BG()
ln = LogoName()
sb = StartButton()
sb.on_click = Clicked()
Button(parent = camera.ui,
model = 'quad',
text = 'Start',
texture = load_texture('assets/button.png'),
scale = (0.3,0.1),
color = color.white,
highlight_color = color.white,
pressed_color = color.white66).on_click = Clicked()
if __name__ == '__main__': app.run()
 

Daniel Nine

Новичок
Пользователь
Дек 30, 2022
2
0
1
Я уже нашёл решение:
просто надо перед командой действия написать lambda:
из-за чего команда станет работать только после нажатия, а не в начале запуска программы!
Но теперь мне бы хотелось бы узнать, а можно сменить окно первого файла на окно из второго файла без пропажи первого?(в двух файлах программа на Ursina)
 

Форум IT Специалистов