Informatik-Unterricht Hilfe! Wie und Wo programmieren wir einen Bildschirmschoner?
Hallo,
ein Freund und Ich müssen im Informatik Unterricht etwas programmieren und zwar einen Bildschirmschoner. Wir haben bisher nie programmiert und müssen das jetzt überwältigen.
Kommen wir mal zur Aufgabe wir sollen einen Bildschirmschoner programmieren der 2 Rechtecke hat und immer in den zwei Rechtecken sind 2 kleinere Rechtecke. Das ist die Aufgabe.
Wir haben keine Ahnung mit welchen Programm oder wie überhaupt wir das machen können. Falls uns jemand einen Code dazu schreiben könnte mit kurzen Erklärungen wäre das echt super!
Vielen Dank!
1 Antwort
Mit pygame (Python) ist sowas z.B. möglich.
Das ist aber nur das Kern-Programm des Bildschirmschoners, welches noch vom Betriebssystem nach einer gewissen Zeit der Inaktivität aufgerufen werden muss. Letzteres ist aber sicherlich nicht Teil der Aufgabe, da dies immer vom spezifischen Betriebssystem abhängt, wie so ein Trigger ausgelöst wird. Nach meiner Einschätzung könnt ihr das ignorieren. Ich denke, es geht um den Bildschirmschoner als solches.
ChatGPT gibt folgenden Beispielcode aus:
import pygame
import random
# Bildschirmgröße
screen_width = 800
screen_height = 600
# Farben
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
pygame.init()
# Erstelle den Bildschirm
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Bildschirmschoner")
# Rechtecke
rect_size = 200
small_rect_size = 50
# Startposition und Geschwindigkeit für die Rechtecke
rect1_x = random.randint(0, screen_width - rect_size)
rect1_y = random.randint(0, screen_height - rect_size)
rect1_speed_x = random.choice([-2, 2])
rect1_speed_y = random.choice([-2, 2])
rect2_x = random.randint(0, screen_width - rect_size)
rect2_y = random.randint(0, screen_height - rect_size)
rect2_speed_x = random.choice([-2, 2])
rect2_speed_y = random.choice([-2, 2])
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Hintergrund löschen
screen.fill(black)
# Bewege die Rechtecke
rect1_x += rect1_speed_x
rect1_y += rect1_speed_y
rect2_x += rect2_speed_x
rect2_y += rect2_speed_y
# Kollisionserkennung mit den Bildschirmrändern
if rect1_x <= 0 or rect1_x >= screen_width - rect_size:
rect1_speed_x *= -1
if rect1_y <= 0 or rect1_y >= screen_height - rect_size:
rect1_speed_y *= -1
if rect2_x <= 0 or rect2_x >= screen_width - rect_size:
rect2_speed_x *= -1
if rect2_y <= 0 or rect2_y >= screen_height - rect_size:
rect2_speed_y *= -1
# Zeichne die Rechtecke
pygame.draw.rect(screen, red, (rect1_x, rect1_y, rect_size, rect_size))
pygame.draw.rect(screen, blue, (rect2_x, rect2_y, rect_size, rect_size))
# Zeichne die kleinen Rechtecke in den großen Rechtecken
pygame.draw.rect(screen, green, (rect1_x + (rect_size - small_rect_size) / 2, rect1_y + (rect_size - small_rect_size) / 2, small_rect_size, small_rect_size))
pygame.draw.rect(screen, green, (rect2_x + (rect_size - small_rect_size) / 2, rect2_y + (rect_size - small_rect_size) / 2, small_rect_size, small_rect_size))
# Bildschirm aktualisieren
pygame.display.flip()
# Pygame beenden
pygame.quit()