0
我想爲我正在處理的一個小項目渲染標題。我已經複製了用於創建選項集的相同代碼(僅用於簡化),但它不起作用。我想知道有沒有人知道我要去哪裏?這可能是一些非常明顯的事情,但是我對python沒有經驗。Python/Pygame標題渲染
下面的代碼:
import pygame
class Option:
hovered = False
def __init__(self, text, pos):
self.text = text
self.pos = pos
self.set_rect()
self.draw()
def draw(self):
self.set_rend()
screen.blit(self.rend, self.rect)
def set_rend(self):
self.rend = menu_font.render(self.text, True, self.get_color())
def get_color(self):
if self.hovered:
return (255, 255, 255)
else:
return (100, 100, 100)
def set_rect(self):
self.set_rend()
self.rect = self.rend.get_rect()
self.rect.topleft = self.pos
class Title:
hovered = False
def __init__(self, text, pos):
self.text = text
self.pos = pos
self.set_rect()
self.draw()
def draw(self):
self.set_rend()
screen.blit(self.rend, self.rect)
def set_rend(self):
self.rend = title_font.render(self.text, True, self.get_color())
def get_color(self):
if self.hovered:
return (255, 255, 255)
else:
return (255, 255, 255)
def set_rect(self):
self.set_rend()
self.rect = self.rend.get_rect()
self.rect.topleft = self.pos
pygame.init()
screen = pygame.display.set_mode((480, 320))
menu_font = pygame.font.Font(None, 40)
options = [Option("PLAY GAME", (140, 105)), Option("OPTIONS", (155, 155)),
Option("QUIT", (180, 205)), Option("NOTPONG", (150,20))]
title_font = pygame.display.font.Font(None, 42)
title = [Title("NOTPONG", (150,20))
while True:
pygame.event.pump()
screen.fill((0, 0, 0))
for option in options:
if option.rect.collidepoint(pygame.mouse.get_pos()):
option.hovered = True
else:
option.hovered = False
option.draw()
pygame.display.update()
while True:
pygame.event.pump()
screen.fill((0, 0, 0))
for Title in title:
if title.rect.collidepoint(pygame.mouse.get_pos()):
title.hovered = True
else:
title.hovered = False
title.draw()
pygame.display.update()
它的確如此,謝謝! –