能否将这组代码改成鼠标漂浮在上面不动,方块一直都变换颜色
import randomimport pygame
#定义的一些参数
BLOCKSIZE = 60#方块的大小
color = (0,0,0)#背景颜色
#随机生成方块颜色的函数
def getRandomColor():
btcolor = (random.randint(0,255),random.randint(0,255),random.randint(0,255))
return btcolor
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("随鼠标移动的彩色小方块")
#游戏主体
while True:
for event in pygame.event.get():#获取用户的事件
print(event.type)
if event.type in (pygame.MOUSEMOTION,pygame.MOUSEBUTTONUP ,pygame.MOUSEBUTTONDOWN):#判断获取的鼠标动作是否在鼠标三个动作中间
blockRect = pygame.Rect(event.pos,event.pos,BLOCKSIZE, BLOCKSIZE)#小方块的x,y,width,height
pygame.draw.rect(winset,getRandomColor(), blockRect)#描绘小方块
pygame.display.update()#更新之后才能看到新画面
winset.blit(baseSurf, (0, 0))#使用原背景覆盖之前的图片
elif event.type == pygame.QUIT:#鼠标退出操作
pygame.quit()#退出
exit()#正确退出
#控制帧率
FPSCLOCK.tick(FPS)
我尝试过鼠标漂浮在上面方块不断变换颜色,但是不成功,鼠标不移动的时候,窗口无法获得事件,将方块做一整个循环又不好插入新值 要实现鼠标指针不动时方块颜色仍然不断变化,我们可以通过以下方式实现:使用一个标志来判断鼠标是否在方块区域内部,当鼠标进入这个区域时,让颜色不断变化,而不是仅仅在移动或点击时变化。
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 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]