【发布时间】:2022-01-25 19:28:38
【问题描述】:
import pygame, sys
from pygame.locals import *
class Text:
def __init__(self, text, pos, **options) -> None:
self.text = text
self.pos = pos
self.fontname = None
self.fontsize = 72
self.fontcolor = Color("black")
self.set_font()
self.render()
def set_font(self):
self.font = pygame.font.Font(self.fontname, self.fontsize)
def render(self):
self.img = self.font.render(self.text, True, self.fontcolor)
self.rect = self.img.get_rect()
self.rect.topleft = self.pos
def draw(self):
App.screen.blit(self.img, self.rect)
class App:
def __init__(self) -> None:
pygame.init()
flags = RESIZABLE
App.screen = pygame.display.set_mode((640, 240), flags)
App.t = Text("Pygame App", pos=(50, 50))
pygame.display.set_caption("Object Oriented Programming")
def do_shortcut(self, event):
self.shortcut = {}
k = event.key
m = event.mod
if (k, m) in self.shortcut:
exec(self.shortcut[k, m])
def run(self):
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
self.do_shortcut(event)
App.screen.fill(Color("gray"))
App.t.draw()
pygame.display.update()
pygame.quit()
if __name__ == "__main__":
app = App()
app.run()
这是上面的整个程序。我尝试将所有组合键存储在字典中,访问它们并执行。
【问题讨论】:
标签: python dictionary pygame shortcut