Bitte um hilfe
Code: Alles auswählen
import pygame, sys, random
skier_bilder = ("skier_runter.png", "skier_rechts1.pgn", "skier_rechts2.png", "skier_links2.png", "skier_links1.png")
class SkierKlasse(pygame.sprite.Sprite) :
def _init_(self) :
pygame.sprite.Sprite._init_(self)
self.image = pygame.image.load("skier_runter.png")
self.rect = self.image.get_rect()
self.rect.center = (320, 100)
self.winkel = 0
def wende(self, richtung) :
self.winkel = self.winkel = -2
if self.winkel < -2: self.winkel = -2
if self.winkel > 2:
self.winkel = 2
center = self.rect.center
self.image = pygame.image.load(skier_bilder(self.winkel))
self.rect.center = center
geschwindigkeit = (self.wnkel, 6 - abs(self.winkel) * 2)
return geschwindigkeit
def bewege(self, geschwindigkeit) :
self.rect.centerx = self.rect.centerx + geschwindigkeit(0)
if self.rect.centerx < 20: self.rect.centerx = 20
if self.rect.centerx > 620: self.rect.centerx = 620
class HindernisKlasse (pygame.sprite.Sprite):
def _init_(self, bild_datei, ort, typ):
pygame.sprite.Sprite._init_(self)
self.bild_datei = bild_datei
self.ort = ort
self.rect = self.image.get_rect()
self.rect.center = ort
self.typ = typ
self.vorbei = False
def scrolle(self, t_prt):
self.rect.centery = self.ort(1) - t_ptr
def erstelle_karte(start, ende):
hindernisse = pygame.sprite.Group()
gates = pygame.sprite.Group()
orte = []
for i in range(10):
zeile = random.randint(start, ende)
spalte = random.randint (0,9)
ort = (spalte * 64 + 20, zeile * 64 + 20)
if not (ort in orte):
orte.append(ort)
typ = random.choice(["baum", "fahne"])
if typ == "baum": img = "skier_baum.png"
elif typ == "fahne": img = "skier_fahne.png"
hindernis = HindernisKlasse(img, ort, typ)
hindernisse.add(hindernis)
return hindernisse
def animiere():
screen.fill([255, 255, 255])
pygame.display.update(hindernisse.draw(screnn))
screen.blit(skier.image, skier.rect)
sreen.blit (punktezahl_text, [10, 10])
pygame.display.flip()
def aktualisiereHindernisGruppe(karte0, Karte1):
hindernisse = pygame.sprite.Group()
for ob in karte0: hindernisse.add(ob)
for ob in karte1: hindernisse.add(ob)
return hindenisse
pygame.init()
screen = pygame.display.set_mode ([640,640])
uhr = pygame.time.Clock()
skier = SkierKlasse()
geschwindigkeit = [0, 6]
karte_position = 0
punkte = 0
karte0 = erstelle_karte(20, 29)
karte1 = erstelle_karte(10, 19)
aktive_karte = 0
hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
font = pygame.font.Font(None, 50)
while True:
uhr.tick(30)
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
geschwindigkeit = skier.wende(-1)
elif event.key == pygame.K_RIGHT:
geschwindigkeit = skier.wende(1)
skier.bewege(geschwindigkeit)
karten_position += geschwindigkeit [1]
if karten_position >=640 and aktive-karte == 0:
aktive_karte = 1
karte0 = erstelle_karte(20, 29)
hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
if karte_position>=1280 and aktive_karte == 1:
aktive_karte = 0
for ob in karte0 :
ob.ort[1] = ob.ort[1] - 1280
karten_position = karten_position - 1280
karte1 = erstelle_karte(10, 19)
hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
for hinderniss in hindernisse:
hinderniss.scrolle(karten_position)
getroffen = pygame.sprite.spritecollide(skier, hindernisse, False)
if getroffen:
if getroffen[0].typ == "baum" and not getroffen[0].vorbei:
punkte = punkte -100
skier.image = pygame.image.load("skier_crash.pnh")
animire()
pygame.time.deplay(1000)
skier.image = pygame.image.load("skier_runter.png")
skier.winkel = 0
geschwindigkeit = [o, 6]
elif getroffen[0].typ == "fahne" and not getroffen[0].vorbei:
punkte += 10
hindernisse.remove(getroffen[0])
punktzahl_text = font.render("Punktzahl: " +str(punkte), 1, (0, 0, 0))
animiere()