Ich versuche, einen Titel für ein kleines Projekt, an dem ich arbeite, zu rendern. Ich habe den gleichen Code repliziert, der zum Erstellen der Optionen verwendet wurde (nur zur Vereinfachung), aber es funktioniert nicht. Ich habe mich gefragt, ob jemand weiß, wo ich falsch liege? es ist wahrscheinlich etwas sehr offensichtlich, aber ich habe keine Erfahrung, wenn es um Python geht.Python/Pygame Titel Rendering
Hier ist der Code:
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()
Es tat, danke! –