Python Pygame按键
我正在编写一个基本的绘图程序来练习Pygame,但是我有一个问题,我正在使用按键事件来更改绘图颜色,但是当你放开按键时,它会返回默认的黑色。我相信有一个简单的方法来解决这个问题,我只是不知道怎么做 这是我的密码:Python Pygame按键,python,drawing,pygame,keypress,Python,Drawing,Pygame,Keypress,我正在编写一个基本的绘图程序来练习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(obje
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 = GREEN
if key[pygame.K_b]:
color = BLUE
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,0,0)。如果未按下某个键,则不会更改。您需要维护一个颜色变量,该变量最初为黑色,按键时会发生变化,并且不会在每次更新时重置。我知道我需要做什么,只是不知道我需要怎么做,或者我可以轻松地做吗?不要让自己听起来懒散,将self.color设置为(0,0,0),然后在更新中引用颜色的地方,改为引用self.color。这将保留颜色作为类属性。谢谢!!这很有道理