import pygame from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import sys import os # Pet Attribute class VirtualPet: def __init__(self): self.happiness = 50 self.hunger = 50 def feed(self): self.hunger -= 10 self.happiness += 5 def pet(self): self.happiness += 10 def update(self): self.hunger += 0.1 self.happiness -= 0.05 # OpenGL-Setup def init_opengl(): glEnable(GL_BLEND) # Aktiviert Transparenz glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) glEnable(GL_DEPTH_TEST) glClearColor(0.2, 0.6, 0.8, 0.0) # Himmelblau mit Transparenz (Alpha = 0.5) gluPerspective(45, (800 / 600), 0.1, 50.0) # Pet zeichnen (Würfel als Platzhalter) def draw_pet(): glPushMatrix() glColor4f(0, 0, 0, 0.2) glTranslatef(0.0, 0.0, -5) glRotatef(pygame.time.get_ticks() * 0.05, 0, 1, 0) # Rotation glutWireCube(1) # Zeichnet den Würfel glPopMatrix() # Hauptprogramm def main(): # Setze Umgebungsvariablen für transparentes Fenster os.environ['SDL_VIDEODRIVER'] = 'x11' os.environ['SDL_VIDEO_WINDOW_POS'] = '0,0' os.environ['SDL_VIDEO_CENTERED'] = '1' pygame.init() display = pygame.display.set_mode((48, 48), pygame.DOUBLEBUF | pygame.OPENGL | pygame.NOFRAME | pygame.SRCALPHA) pygame.display.set_caption("Transparent Virtual Pet") clock = pygame.time.Clock() display.set pet = VirtualPet() glutInit() # Initialisiert GLUT init_opengl() # Setze Transparenz für das Fenster # pygame.display.set_mode((800, 600), pygame.OPENGL | pygame.DOUBLEBUF | pygame.NOFRAME | pygame.SRCALPHA) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_f: pet.feed() elif event.key == pygame.K_p: pet.pet() pet.update() # OpenGL Rendering glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) draw_pet() pygame.display.flip() clock.tick(60) pygame.quit() sys.exit() if __name__ == "__main__": main()