Итак, часть этой функции, у меня есть две переменные, color
и color_rect
, возможно ли использовать эти переменные в другой функции позже. Я попытался поставить глобальный перед ним, однако это привело к синтаксической ошибке или сказать, что variable
используется до глобального объявления
Полный код:
def colors():
clock = pygame.time.Clock()
button_1 = pygame.Rect(width/2, (height/10), width/4, 60)
button_1.centerx = width/2
colors = [("White", (255, 255, 255)), ("Red", (255, 0, 0)), ("Green", (0, 255, 0)), ("Blue", (0, 0, 255))]
current_color = 0
color_t, color = colors[current_color]
colors_rect = [("White", (255, 255, 255)), ("Red", (255, 0, 0)), ("Green", (0, 255, 0)), ("Blue", (0, 0, 255))]
current_color_rect = 0
color_t_rect, color_rect = colors[current_color]
text_particle = render_text_speech('pixel.ttf', 30, 'Particle:', (255,255,255), 100, 300, False)
text_colors = render_text_speech('pixel.ttf', 50, 'Colors', (255,255,255), button_1.centerx, button_1.centery, False)
text_color = render_text_speech('pixel.ttf', 30, color_t, color, 180, 300, False)
ball = pygame.Rect(350,200,50,50)
text_rect = render_text_speech('pixel.ttf', 30, 'Ball:', (255,255,255), 310, 300, False)
text_color_rect = render_text_speech('pixel.ttf', 30, color_t_rect, color_rect, 390, 300, False)
particles = []
running = True
while running:
screen.fill((0,0,0))
pygame.draw.rect(screen, (135, 206, 235), button_1)
pygame.draw.rect(screen, color_rect, ball, 3)
screen.blit(*text_rect)
screen.blit(*text_particle)
screen.blit(*text_colors)
screen.blit(*text_color)
screen.blit(*text_color_rect)
textRect = text_color[1]
textRect_rect = text_color_rect[1]
particles.append([[150,200],[random.randint(0,20) / 10 - 1, 1], random.randint(4,6)])
for particle in particles:
particle[0][0] += particle[1][0]
particle[0][1] += particle[1][1]
particle[2] -= 0.1
particle[1][1] += 0.03
pygame.draw.circle(screen, color, [int(particle[0][0]), int(particle[0][1])], int(particle[2]))
if particle[2] <= 0:
particles.remove(particle)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1 and textRect.collidepoint(event.pos):
current_color += 1
if current_color >= len(colors):
current_color = 0
color_t, color = colors[current_color]
text_color = render_text_speech('pixel.ttf', 30, color_t, color, 180, 300, False)
if event.button == 1 and textRect_rect.collidepoint(event.pos):
current_color_rect += 1
if current_color_rect >= len(colors_rect):
current_color_rect = 0
color_t_rect, color_rect = colors_rect[current_color_rect]
text_color_rect = render_text_speech('pixel.ttf', 30, color_t_rect, color_rect, 390, 300, False)
pygame.display.update()
clock.tick(60)
Две переменные color
и color_rect
. Заметьте, я сказал переменную color
, а не colors
.