我正在编写一个基本的绘图程序来练习Pygame,但我有一个问题我正在使用按键事件来改变绘图颜色,但是当你松开键时它会回到默认的黑色。我确信有一种简单的方法可以解决这个问题我只是不知道怎么做!
这是我的代码:
import pygame
from pygame.locals import *
import sys
RED = (255,0,0)
GREEN = (0,255,0)
BLUE = (0,0,255)
WHITE = (255,255,255)
class Draw(object):
def update(self, screen):
color = (0,0,0)
key = pygame.key.get_pressed()
if key[pygame.K_r]:
color = RED
if key[pygame.K_g]:
color = BLUE
if key[pygame.K_b]:
color = GREEN
if key[pygame.K_w]:
color = WHITE
mouse_pos = pygame.mouse.get_pos()
pygame.draw.circle(screen, (color), (mouse_pos),30)
def main(self):
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Basic Pygame program')
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((0, 0, 0))
screen.blit(background, (0, 0))
while 1:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
self.update(screen)
pygame.display.flip()
if __name__ == '__main__':
draw = Draw()
draw.main()
非常感谢任何指针或更简单的方法来编写我的代码
谢谢!
答案 0 :(得分:2)
在每次更新时,将颜色设置为(0,0,0)。如果未按下某个键,则不会更改。您需要维护一个最初为黑色的颜色变量,如果按下该键则会更改,并且在每次更新时都不会重置。