Я пытаюсь сделать простую игру, в которой при определенных условиях поле зрения персонажа (всегда в центре экрана) радиально уменьшается, пока оно полностью не закроется и игра не закончится. Идея состоит в том, чтобы закрыть поле зрения полупрозрачной маской вокруг поля зрения персонажа. Соответствующая часть кода с решением, которое я применяю, будет выглядеть так:
pg.init()
pg.display.init()
screensize = (width,height)=(600,600)
c=(int(width/2),int(height/2))
screen = pg.display.set_mode(screensize)
surface = pg.Surface((600,600), pg.SRCALPHA)
visionradius=20
run=True
while run:
pg.time.delay(20)
for event in pg.event.get():
if event.type == pg.QUIT:
run=False
if CONDITION()==True:
visionradius+=1
else:
pass
pg.draw.circle(surface,(10,255,10,230),(c[0],c[1]),600,visionradius)
screen.blit(surface, (0,0))
if visionradius>599:
run = False
pg.display.update()
screen.fill((255,255,255))
pg.quit()
Проблема с этим решением в том, что оно замедляет мою игру по мере увеличения радиуса. Я был бы признателен за любые идеи для альтернативного способа полупрозрачного закрытия окна или предотвращения замедления игры. Интересно, если бы pygame dr aws тонн унитарных кругов тикания по мере увеличения радиуса зрения, что бы объяснило мою проблему ... Если это так, я мог бы уменьшить радиус круга по мере увеличения тикания, и это было бы, по крайней мере, частично уменьшить проблему!