【发布时间】:2018-09-30 07:59:18
【问题描述】:
这段代码是重复的,我应该使用辅助函数来调用这个函数还是封装它?
if exitcode==0:
pygame.font.init()
font = pygame.font.Font(None, 24)
text = font.render("Accuracy: "+str(accuracy)+"%", True, (255,0,0))
textRect = text.get_rect()
textRect.centerx = screen.get_rect().centerx
textRect.centery = screen.get_rect().centery+24
screen.blit(gameover, (0,0))
screen.blit(text, textRect)
else:
pygame.font.init()
font = pygame.font.Font(None, 24)
text = font.render("Accuracy: "+str(accuracy)+"%", True, (0,255,0))
textRect = text.get_rect()
textRect.centerx = screen.get_rect().centerx
textRect.centery = screen.get_rect().centery+24
screen.blit(youwin, (0,0))
screen.blit(text, textRect)
唯一的区别是 if-else 语句的倒数第二行 screen.blit(youwin / youlose, (0,0)) 和 text = font.render("Accuracy: "+str(accuracy)+"%", True, (0,255,0) / (255,0,0))
这是我使用辅助函数所做的,但它不会运行:
if exitcode==0:
initialize_game()
text = font.render("Accuracy: "+str(accuracy)+"%", True, (255,0,0))
produce_text_on_screen()
else:
initialize_game()
text = font.render("Accuracy: "+str(accuracy)+"%", True, (0,255,0))
produce_text_on_screen()
def initialize_game():
pygame.font.init()
font = pygame.font.Font(None, 24)
def produce_text_on_screen():
textRect = text.get_rect()
textRect.centerx = screen.get_rect().centerx
textRect.centery = screen.get_rect().centery+24
screen.blit(gameover, (0,0))
screen.blit(text, textRect)
NameError:名称“initialize_game”未定义。 一些帮助会很棒,谢谢!
【问题讨论】:
标签: python pygame encapsulation helper