要实现鼠标指针不动时方块颜色仍然不断变化,我们可以通过以下方式实现:使用一个标志来判断鼠标是否在方块区域内部,当鼠标进入这个区域时,让颜色不断变化,而不是仅仅在移动或点击时变化。
import random
import pygame
# 定义的一些参数
BLOCKSIZE = 60 # 方块的大小
color = (0, 0, 0) # 背景颜色
# 随机生成方块颜色的函数
def getRandomColor():
return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
bgcolor = color # 背景颜色
FPSCLOCK = pygame.time.Clock() # 创建clock对象
FPS = 60
# 初始化
pygame.init()
winset = pygame.display.set_mode((640, 480))
winset.fill(bgcolor)
baseSurf = winset.copy() # 背景复制
pygame.display.set_caption("随鼠标彩色方块")
# 初始化方块的初始位置
blockRect = pygame.Rect(100, 100, BLOCKSIZE, BLOCKSIZE)
# 游戏主体循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
# 获取鼠标位置
mouse_pos = pygame.mouse.get_pos()
# 判断鼠标是否在方块里
if blockRect.collidepoint(mouse_pos):
# 更新方块颜色
pygame.draw.rect(winset, getRandomColor(), blockRect)
else:
# 重置为背景色,如果鼠标不在方块里
winset.blit(baseSurf, (0, 0))
pygame.display.update()
FPSCLOCK.tick(FPS)
这样通过不断绘制和更新窗口,你就可以实现一个不断变化颜色的方块。当鼠标移动到方块区域时,即使不动,方块颜色仍然会变化。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |