我正试着在游戏里做一个画笔游戏。我已经画好了,但是我希望用户点击一个图像,这将改变画笔的画笔。如果用户单击蓝色图像,画笔将变为蓝色。到目前为止,我已经整理了显示蓝色的图像,我有一个默认的红色画笔。只有当蓝色图像的位置被触摸时,画笔的颜色才会改变。当用户单击屏幕的任何其他区域时,我希望画笔颜色保持不变。
有什么建议吗?
这是我的代码:
import sys, pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1000,600))
screen.fill((255,255,255))
brush = pygame.image.load("redbrush.png")
brush = pygame.transform.scale(brush,(45,45))
brush2 = pygame.image.load("bluebrush.png")
brush2 = pygame.transform.scale(brush2,(45,45))
pygame.display.update()
clock = pygame.time.Clock()
z = 0
while 1:
screen.blit(brush2, (0,10))
pygame.display.update()
clock.tick(60)
x,y = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type ==pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type ==MOUSEBUTTONDOWN:
z=1
elif event.type ==MOUSEBUTTONUP:
z=0
if z==1:
screen.blit(brush, (x -23.5,y-23.5))
pygame.display.update()
if brush2.get_rect().collidepoint(pygame.mouse.get_pos()):
screen.blit(brush2, (x -23.5,y-23.5))
pygame.display.update()发布于 2013-12-23 12:22:17
替换你的台词:
if brush2.get_rect().collidepoint(pygame.mouse.get_pos()):
screen.blit(brush2, (x -23.5,y-23.5))
pygame.display.update()通过以下方式:
if brush2.get_rect().collidepoint(pygame.mouse.get_pos()):
(brush, brush2) = (brush2, brush) # swaps brush and brush2
pygame.display.update()编辑:--我看到了您的评论,下面是您的代码的编辑版本:
import sys, pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1000,600))
screen.fill((255,255,255))
brush1 = pygame.image.load("redbrush.png")
brush1 = pygame.transform.scale(brush1,(45,45))
pos1 = (0, 32)
brush2 = pygame.image.load("bluebrush.png")
brush2 = pygame.transform.scale(brush2,(45,45))
brush2 = pygame.transform.scale(brush2,(45,45))
pos2 = (0, 64)
brush = brush1
pygame.display.update()
clock = pygame.time.Clock()
z = 0
while 1:
screen.blit(brush1, pos1)
screen.blit(brush2, pos2)
pygame.display.update()
clock.tick(60)
x,y = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type ==pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type ==MOUSEBUTTONDOWN:
z=1
elif event.type ==MOUSEBUTTONUP:
z=0
if z==1:
if brush1.get_rect(center=pos1).collidepoint(pygame.mouse.get_pos()):
brush = brush1
if brush2.get_rect(center=pos2).collidepoint(pygame.mouse.get_pos()):
brush = brush2
screen.blit(brush, (x -23.5,y-23.5))
pygame.display.update()https://stackoverflow.com/questions/20743257
复制相似问题