Pygame&Python Переменные
Почти готова копия fnaf на pygame, но я не могу реализовать одну вещь. Есть часть кода:
s = True
m = True
camera_opened = False # Когда открываю камеры, становится true
def threadingg():
threading.Thread(target=minus).start()
def minus():
s = False
while secs > 0 and camera_opened:
secs -= 1
sleep(1)
Active_Camera = 0
s = True
#minus работает без нареканий, когда я открываю камеру, каждую 1сек SECS уменьшается на 1, и если #время истекло, камера выключается. Максимум тут должен быть 5 secs.
def bear():
threading.Thread(target=reabilitation).start() # Это сделано, чтобы функция reab была в фоне.
def reabilitation():
m = False
while secs < 5 and camera_opened == False:
sleep(1)
secs += 1
m = True
def Process():
if ...:
...
...
while s:
bear()
if ...:
...
...
while m:
threadingg()
Но тут возникли проблемы, логика игры должна быть: Открываю камеры, мне дается 5 сек и когда таймер = 0, камера закрывается и открыть можно только тогда, когда таймер восстановится до 5. Оно работает, но вот реабилитация...
Как оно работает сейчас: Время вышло, камера закрылась. И тут же счетчик взлетает до 70+ и я ничего не смог поделать.
У меня есть еще пара вопросов
|Как задать максимум для переменной? Со старта secs = 5, а как задать максимум, чтобы за пределы не выходило?
|Что лучше всего подойдет для создания 2д игр? Юнити стоит скачивать?
Ответы (1 шт):
Автор решения: bfgquaka
→ Ссылка
Решено
s=True
qwe=True
def threadingg():
threading.Thread(target=minus).start()
def minus():
global ...
while secs > 0 and camera_opened:
sleep(0.5)
secs -= 1
s = True
def bear():
threading.Thread(target=reabilitation).start()
def reabilitation():
global ...
while secs < 5:
sleep(1)
secs += 1
qwe = True
def Process(): #в цикле
if Active_Camera == 0:
camera_opened = False
screen.blit(...,(x,y))
if secs < 5 and qwe:
bear()
qwe = False
if Active_Camera == 1:
camera_opened = True
screen.blit(...,(x,y))
if s:
threadingg()
s = False