wenn ich z. B. folgendes Programm schreiben:
Code: Alles auswählen
import pygame
pygame.init()
WIDTH = 250
HIGHT = 250
AKTIV = True
BLACK = (0, 0, 0,)
WHITE = (255, 255, 255)
YELLOW = (255, 255, 0)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
GREEN = (0, 255, 0)
screen = pygame.display.set_mode((WIDTH, HIGHT))
pygame.display.set_caption("Hallo!")
player_x = 100
player_y = 100
player_color = WHITE
while AKTIV:
for event in pygame.event.get():
if event.type == pygame.QUIT:
AKTIV = False
player = pygame.draw.rect(screen, player_color, (player_x, player_y, 25, 25), 0)
cube_topleft = pygame.draw.rect(screen, YELLOW, (5, 5, 25, 25), 0)
cube_topright = pygame.draw.rect(screen, RED, (220, 5, 25, 25), 0)
cube_bottomleft = pygame.draw.rect(screen, BLUE, (5, 220, 25, 25), 0)
cube_bottomright = pygame.draw.rect(screen, GREEN, (220, 220, 25, 25), 0)
pressed = pygame.key.get_pressed()
if pressed[pygame.K_LEFT]:
player_x -= 0.1
if pressed[pygame.K_RIGHT]:
player_x += 0.1
if pressed[pygame.K_UP]:
player_y -= 0.1
if pressed[pygame.K_DOWN]:
player_y += 0.1
if player.colliderect(cube_topleft):
player_color = YELLOW
if player.colliderect(cube_topright):
player_color = RED
if player.colliderect(cube_bottomleft):
player_color = BLUE
if player.colliderect(cube_bottomright):
player_color = GREEN
pygame.display.flip()
screen.fill(BLACK)
pygame.time.Clock()
pygame.quit()
Zum einen finde ich es aber nicht gut, alles in den Loop zu schreiben und spätestens wenn Programme komplexer werden, verliere ich da die Übersicht. Jetzt würde ich natürlich gerne mehrere Funktionen bilden, die dann jeweils nur im Loop aufgerufen werden. Zum Beispiel sowas hier:
Code: Alles auswählen
def cubes_corner():
cube_topleft = pygame.draw.rect(screen, YELLOW, (5, 5, 25, 25), 0)
cube_topright = pygame.draw.rect(screen, RED, (220, 5, 25, 25), 0)
cube_bottomleft = pygame.draw.rect(screen, BLUE, (5, 220, 25, 25), 0)
cube_bottomright = pygame.draw.rect(screen, GREEN, (220, 220, 25, 25), 0)
Code: Alles auswählen
cubes_corner()
Vielen Dank!