присвоение значения переменных через функцию класса Python
у меня есть некая переменная screen_mode она должна иметь одно из трёх значений: menu, game, settings.
это основной файл↓
from Config import *
from StartScreen import *
import pygame as pg
screen = pg.display.set_mode((WIDTH,HEIGHT))
screen_mode = 'menu'
X,Y = -1, -1 #без начальной позиции код не хочет работать
start_screen=StartScreen()
while True:
for event in pg.event.get():
if event.type == pg.FINGERDOWN:
X, Y = event.x*WIDTH,event.y*HEIGHT
if screen_mode == 'menu':
start_screen.draw(screen,pg)
start_screen.update(screen_mod,screen,pg, X ,Y)
if screen_mode == 'game':
screen.fill((255,0,255))
pg.display.update()
это файл класса↓
from Button import *
button = Button(300,300,100,400,(25,0,80))
class StartScreen():
def __init__(self):
self.bg_color = (255,0,123)
def draw(self, sc,pg):
sc.fill(self.bg_color)
pg.draw.rect(sc, (0,0,0),(200,200,200,100))
def update(self, screen_mode, sc ,pg, x, y):
button.draw(sc,pg)
frame = button.frame
if (x>frame[0] and x<(frame[0]+frame[2]))and(y>frame[1] and y<(frame[1]+frame[3])):
screen_mode = "game"
в этом классе есть функция update в ней я проверяю находиться ли кординаты нажатия в кнопке и если да, то меняю значения screen_mode на game и экран меняется
итак вопрос вот в чем: как мне изменить значения переменной в одном файле с помощью функции в друг
я размышляю на эту тему сам и вот к чему я пришел
в основном файле
if screen_mode == 'menu':
screen_mode = start_screen.update(screen_mod,screen,pg, X ,Y)
в файле класса
def update(self, screen_mode, sc ,pg, x, y):
button.draw(sc,pg)
frame = button.frame
if (x>frame[0] and x<(frame[0]+frame[2]))and(y>frame[1] and y<(frame[1]+frame[3])):
return "game"
то есть я возвращаю значение после проверки и присваиваю его переменной, но меня это не устраивает.
я задумываюсь о том как работают функции с глобальными переменными которые, но не знаю будет ли это тут работать
Источник: Stack Overflow на русском