fügt ball-Bild hinzu und Skript für Spielidee: keine Klassen, und weniger als 100 Zeilen Code
This commit is contained in:
98
simple_pygame_demo.py
Normal file
98
simple_pygame_demo.py
Normal file
@@ -0,0 +1,98 @@
|
||||
import pygame
|
||||
from pygame.locals import *
|
||||
import sys
|
||||
from random import randint
|
||||
|
||||
# Werte für das Spiel
|
||||
BREITE = 700
|
||||
HÖHE = 500
|
||||
WEISS = 255, 255, 255
|
||||
ROT = 255, 10, 24
|
||||
FRAMERATE = 60
|
||||
|
||||
# Pygame und screen initialisieren
|
||||
pygame.init()
|
||||
screen = pygame.display.set_mode((BREITE, HÖHE))
|
||||
screen.fill(WEISS)
|
||||
frame_per_sec = pygame.time.Clock()
|
||||
|
||||
# Ein Bild laden
|
||||
ball_bild = pygame.image.load('ball.bmp')
|
||||
ball_rect = ball_bild.get_rect()
|
||||
ball_rect.center = BREITE / 2, HÖHE / 2
|
||||
|
||||
# Werte für den Ball
|
||||
nach_unten = 0
|
||||
nach_rechts = 0
|
||||
beschleunigung = 1
|
||||
gegen_beschleu = beschleunigung * .7
|
||||
lower_me = .99
|
||||
|
||||
# Werte für Ziel
|
||||
ziel_x = BREITE / 4
|
||||
ziel_y = HÖHE / 4
|
||||
ziel_radius = 30
|
||||
ziel = pygame.draw.circle(screen, ROT, (ziel_y, ziel_x), ziel_radius)
|
||||
|
||||
def schwerkraft_s(nach_unten, nach_rechts):
|
||||
if nach_unten <= 0:
|
||||
return nach_unten + beschleunigung, nach_rechts * lower_me
|
||||
else:
|
||||
return nach_unten + gegen_beschleu , nach_rechts * lower_me
|
||||
|
||||
def schwerkraft_n(nach_unten, nach_rechts):
|
||||
if nach_unten >= 0:
|
||||
return nach_unten - beschleunigung, nach_rechts * lower_me
|
||||
else:
|
||||
return nach_unten - gegen_beschleu, nach_rechts * lower_me
|
||||
|
||||
def schwerkraft_o(nach_unten, nach_rechts):
|
||||
if nach_rechts <= 0:
|
||||
return nach_unten * lower_me, nach_rechts + beschleunigung
|
||||
else:
|
||||
return nach_unten * lower_me, nach_rechts + gegen_beschleu
|
||||
|
||||
def schwerkraft_w(nach_unten, nach_rechts):
|
||||
if nach_rechts >= 0:
|
||||
return nach_unten * lower_me, nach_rechts - beschleunigung
|
||||
else:
|
||||
return nach_unten * lower_me, nach_rechts - gegen_beschleu
|
||||
|
||||
def flip_richtung(richtung):
|
||||
return richtung * -1
|
||||
|
||||
schwerkraft = schwerkraft_s
|
||||
|
||||
while True:
|
||||
# Ereignisse abfragen
|
||||
for event in pygame.event.get():
|
||||
if event.type == QUIT:
|
||||
pygame.quit()
|
||||
sys.exit()
|
||||
if event.type == KEYDOWN:
|
||||
if event.key == K_UP:
|
||||
schwerkraft = schwerkraft_n
|
||||
if event.key == K_DOWN:
|
||||
schwerkraft = schwerkraft_s
|
||||
if event.key == K_LEFT:
|
||||
schwerkraft = schwerkraft_w
|
||||
if event.key == K_RIGHT:
|
||||
schwerkraft = schwerkraft_o
|
||||
if ball_rect.colliderect(ziel):
|
||||
ziel_x = randint(ziel_radius * 2, HÖHE - (ziel_radius * 2))
|
||||
ziel_y = randint(ziel_radius * 2, BREITE - (ziel_radius * 2))
|
||||
|
||||
# Objekte bewegen
|
||||
ball_rect.move_ip(nach_rechts, nach_unten)
|
||||
nach_unten, nach_rechts = schwerkraft(nach_unten, nach_rechts)
|
||||
if ball_rect.right >= BREITE or ball_rect.left <= 0:
|
||||
nach_rechts = flip_richtung(nach_rechts)
|
||||
if ball_rect.bottom >= HÖHE or ball_rect.top <= 0:
|
||||
nach_unten = flip_richtung(nach_unten)
|
||||
|
||||
# Screen aktualisieren
|
||||
screen.fill(WEISS)
|
||||
screen.blit(ball_bild, ball_rect)
|
||||
ziel = pygame.draw.circle(screen, ROT, (ziel_y, ziel_x), ziel_radius)
|
||||
pygame.display.update()
|
||||
frame_per_sec.tick(FRAMERATE)
|
||||
Reference in New Issue
Block a user