Advertisement
Guest User

Untitled

a guest
May 9th, 2013
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.81 KB | None | 0 0
  1. import pygame
  2. import sys
  3. import random
  4.  
  5. skier_bilder =  ["skier_runter.png", "skier_rechts.png",
  6.                  "skier_rechts2.png", "skier_links2.png",
  7.                  "skier_links.png"]
  8.  
  9. class SkierKlasse(pygame.sprite.Sprite):
  10.     def __init__(self):
  11.         pygame.sprite.Sprite.__init__(self)
  12.         self.image = pygame.image.load("skier_runter.png")
  13.         self.rect = self.image.get_rect()
  14.         self.rect.center = [320, 100]
  15.         self.winkel = 0
  16.     def wende(self, richtung):
  17.         self.winkel = self.winkel + richtung
  18.         if self.winkel < -2:
  19.             self.winkel = -2
  20.         if self.winkel > 2:
  21.             self.winkel = 2
  22.  
  23.         center = self.recht.center
  24.         self.image =pygame.image.load(skier_bilder[self.winkel])
  25.         self.rect = self.image.get_rect()
  26.         self.rect.center = center
  27.         geschwindigkeit = [self.winkel, 6 - abs(self.winkel)*2]
  28.         return geschwindigkeit
  29.  
  30.     def bewege(self, geschwindigeit):
  31.         self.rect.centerx = self.rect.centerx + geschwindigkeit[0]
  32.         if self.rect.centerx < 20:
  33.             self.rect.centerx = 20
  34.         if self.rect.centerx > 620:
  35.             self.rect.centerx = 620
  36.  
  37. class HindernisKlasse(pygame.sprite.Sprite):
  38.     def __init__(self, bild_datei, ort, typ):
  39.         pygame.sprite.Sprite.__init__(self)
  40.         self.bild_datei = bild_datei
  41.         self.image = pygame.image.load(bild_datei)
  42.         self.ort = ort
  43.         self.rect = self.image.get_rect()
  44.         self.rect.center = ort
  45.         self.typ = typ
  46.         self.vorbei = False
  47.  
  48.     def scrolle(self, t_ptr):
  49.         self.rect.centery = self.ort[1] - t_ptr
  50.  
  51. def erstelle_karte(start, ende):
  52.     hindernisse = pygame.sprite.Group()
  53.     gates = pygame.sprite.Group()
  54.     orte = [ ]
  55.     for i in range(10):
  56.         zeile = random.randint(start, ende)
  57.         spalte = random.randint(0, 9)
  58.         ort = [spalte* 64 + 20, zeile * 64 +20]
  59.         if not (ort in orte):
  60.             orte.append(ort)
  61.             typ = random.choice(["baum", "fahne"])
  62.             if typ == "baum":
  63.                 img= "skier_baum.png"
  64.             elif typ == "fahne":
  65.                 img = "skier_fahne.png"
  66.                 hindernis = HindernisKlasse(img, ort, typ)
  67.                 hindernisse.add(hindernis)
  68.     return hindernisse
  69.  
  70. def animiere():
  71.     screen.fill([255, 255, 255])
  72.     pygame.display.update(hindernisse.draw(screen))
  73.     screen.blit(skier.image, skier.rect)
  74.     screen.blit(punktzahl_text, [10, 10])
  75.     pygame.display.flip()
  76.  
  77. def aktualisiereHindernisGruppe(karte0, karte1):
  78.     hindernisse = pygame.sprite.Group()
  79.     for ob in karte0:
  80.         hindernisse.add(ob)
  81.     for ob in karte1:
  82.         hindernisse.add(ob)
  83.     return hindernisse
  84.  
  85. pygame.init()
  86. screen = pygame.display.set_mode([640, 640])
  87. uhr = pygame.time.Clock()
  88. skier = SkierKlasse()
  89. geschwindigkeit = [0, 6]
  90. karten_position = 0
  91. punkte = 0
  92. karte0 = erstelle_karte(20, 29)
  93. karte1 = erstelle_karte(10, 19)
  94. aktive_karte = 0
  95. hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
  96. font = pygame.font.Font(None, 50)
  97.  
  98. while True:
  99.     uhr.tick(30)
  100.     for event in pygame.event.get():
  101.         if event.type == pygame.QUIT:
  102.             sys.exit()
  103.         if event.type == pygame.KEYDOWN:
  104.             if event.key == pygame.K_LEFT:
  105.                 geschwindigkeit = skier_wende(-1)
  106.             elif event.key == pygame.K_RIGHT:
  107.                 geschwindigkeit = skier.wende(1)
  108.     skier.bewege(geschwindigkeit)
  109.     karten_position += geschwindigkeit[1]
  110.  
  111.     if karten_position >=640 and aktive_karte == 0:
  112.         aktive_karte = 1
  113.         karte0 = erstelle_karte(20, 29)
  114.         hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
  115.     if karten_position >= 1280 and aktive_karte==1:
  116.         aktive_karte = 0
  117.         for ob in karte0:
  118.             ob.ort[1] = ob.ort[1] - 1280
  119.         karten_position = karten_position - 1280
  120.         karte1 = erstelle_karte(10,19)
  121.         hindernisse = aktualisiereHindernisGruppe(karte0, karte1)
  122.     for hindernis in hindernisse:
  123.         hindernis.scrolle(karten_position)
  124.     getroffen = pygame.sprite.spritecollide(skier, hindernisse, False)
  125.     if getroffen[0].typ == "baum" and not getroffen[0].vorbei:
  126.         punkte = punkte -100
  127.         skier.ímage = pygame.image.load("skier_crash.png")
  128.         animiere()
  129.         pygame.time.delay(1000)
  130.         skier.image = pygame.image.load("skier_runter.png")
  131.         skier.winkel = 0
  132.         geschwindigkeit = [0, 6]
  133.         getroffen[0].vorbei = True
  134.     elif getroffen[0].typ == "fahne" and not getoffen[0].vorbei:
  135.         punkte += 10
  136.         hindernisse.remove(getroffen[0])
  137.  
  138.     punktzahl_text = font.render("Punktzahl: " +str(punkte), 1, (0,0,0))
  139.     animiere()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement