PyGame实现左键点击生成圆形并从头开始增长的问题求解
问题原因
当前代码中控制圆形半径的变量r会在主循环中持续自增,触发鼠标左键点击事件时,仅更新了圆心坐标x、y,没有同步重置半径值,因此圆形只会移动到点击位置继续增大,不会从头开始生长。
修复方法
在鼠标左键点击的事件处理分支中,更新圆心坐标的同时将r重置为初始值0即可,修改后的完整代码如下:
import pygame size = width, height = 800, 600 screen = pygame.display.set_mode(size) clock = pygame.time.Clock() fps = 30 MintCream_COLOR = (245, 255, 250) LightSkyBlue_COLOR = (135, 206, 250) x = y = 40 def draw(radius): pygame.draw.circle(screen, LightSkyBlue_COLOR, (x, y), radius) r = 0 running = True pygame.display.update() while running: screen.fill(MintCream_COLOR) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: x, y = event.pos[0], event.pos[1] r = 0 # 点击时重置半径为初始值 draw(r) r = r + 1 pygame.display.flip() clock.tick(fps) pygame.quit()
内容的提问来源于stack exchange,提问作者Anna Khishchenko
相关产品推荐
相关产品推荐

