Token Error:

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
helmut
User
Beiträge: 57
Registriert: Mittwoch 2. November 2005, 07:45
Wohnort: Dormagen

@ Thyestes,

Du solltest Dir die Liste mit den Dichten noch einmal ansehen, speziell die ersten beiden.

Code: Alles auswählen

Dichten = {"Buche":7.86,"Eisen":0.7,"Gold":19.3,"Wasser":1,"Beton":1.8,
           "Glas":2.6}

Gruss Helmut
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Lol cool Buche hat ne dichte von 7.86 :lol:

Nee also nochmal ins Tafelwerk schauen und verbessern!
mfg

Thomas :-)
phoe1
User
Beiträge: 2
Registriert: Dienstag 8. März 2011, 17:21

Hallo! Bei mir zeigt er die Fehlermeldung auch.
:K warum!
Kann mir einer helfen?

Code: Alles auswählen

import pygame, sys, random

skier_bilder = ["skier_runter.png", "skier_rechts1.png",
                "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") #erstellt die Skier
        self.rect = self.image.get_rect()
        self.rect.center = [320, 100]
        self.winkel = 0                                    #
    def wende(self, richtung):                                    #
        self.winkel = slf.winkel + richtung
        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]) #wendet die
        self.rect = self.image.get_rect()                         #Skier
        self.rect.center = center
        geschwindigkeit = [self.winkel, 6 - abs(self.winkel) * 2]
        return geschwindigkeit                                    #
    
    def bewege(self, geschwindigkeit):                             #bewegt die
        self.rect.centerx = self.rect.centerx + geschwindigkeit[0] #Skier nach
        if self.rect.centerx < 20:  self.rect.centerx = 20         #rechts o.
        if self.rect.centerx > 620: self.rect.centerx = 620        #links

class HindernisKlasse(pygame.sprite.Sprite):       #
    def _init_(self, bild_datei, ort, typ):
        pygame.sprite.Sprite._init_(self)
        self.bild_datei = blid_datei
        self.image = pygame.image.load(bild_datei) #erstellt Bäume
        self.ort = ort                             #und Fahnen
        self.rect = self.image.get_rect()
        self.typ = typ
        self.vorbei = False                        #

    def scrolle(self, t_ptr):                   #scrollt die Landschaft
        self.rect.centery = self.ort[1] - t_ptr #nach oben

def erstelle_karte(start, ende):                                   #
    hindernisse = pygame.sprite.Group()
    gates = pygame.sprite.Group()
    orte = []
    for i in range(10):
        zeile = random.randint(start, ende) #Hindernisse
        spalte = random.randint(0, 9)       #willkürlich verteilen
        ort = [spalte * 64 + 20, zeile * 64 + 20]
        if not (ort in orte):                                      #erstellt
            orte.append(ort)                                       #ein Fenster
            typ = random.choice(["baum", "fahne"])                 #mit Bäumen
            if typ == "baum": img = "skier_baum.png"               #und Fahnen
            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(screen)) #zeichnet das Bild neu,
    screen.blit(skier.image, skier.rect)            #wenn es sich bewegt
    screen.blit(punktzahl_text, [10, 10])
    pygame.display.flip()                           #

def aktualisiereHindernisGruppe(karte0, karte1): #
    hindernisse = pygame.sprite.Group()
    for ob in karte0: hindernisse.add(ob)        #geht zum nächsten
    for ob in karte1: hindernisse.add(ob)        #Landschaftsbild
    return hindernisse                           #

pygame.init()                                             #
screen = pygame.display.set_mode([640,640])
uhr = pygame.time.Clock()
skier = SkierKlasse()
geschwindigkeit = [0, 6]
karten_position = 0
punkte = 0
karte0 = erstelle_karte(20, 29)
karte1 = erstelle_karte(10, 19)
aktive_karte = 0
hindernisse = aktualisiereHindernisGruppe(karte0, karte1) #macht alles bereit
font = pygame.font.Font(None, 50)                         #

while True:                                              #startet Hauptschleife
    uhr.tick(30)                       #aktualisiert die Grafik 30* pro Sekunde
    for event in pygame.event.get():                        #
        if event.type == pygame.Quit: sys.exit()
        if event.type == pygame.KEYDOWN:                    #achtet auf
            if event.key == pygame.K_LEFT:                  #Tastendrücke
                geschwindigkeit = skier.wende(1)            #o. Fenster schließen
            elif event.key == pygame.K_RIGHT:               #Befehl
                geschwindigkeit = skier.wende(1)            #
    skier.bewege(geschwindigkeit)                             #bewegt die Skier
    karten_position += geschwindigkeit[1]               #scrollt die Landschaft

    if karten_position >=640 and aktive_karte == 0:                #
        aktive_karte = 1
        karte0 = erstelle_karte(20, 29)
        hindernisse = updateHindernisgroup(karte0, karte1)         #wechselt
    if karten_position >=1280 and aktive_karte == 1:               #von einer
        aktive_karte = 0                                           #Landschaft
        for ob in karte0:                                          #zur nächsten
            ob.ort[1] - 1280
        karten_position = karten_position - 1280
        karte1 = erstelle_karte(10, 19)
        hindernisse = aktualisierenHindernisGruppe(karte0, karte1) #

    for hindernis in hindernisse:
        hindernis.scrolle(karten_position)
        
    getroffen = pygame.sprite.spritecollide(skier, hindernisse, False) #
    if getroffen:
        if getroffen[0].type == "baum" and not getroffen[0].vorbei:    #prüft,
            punkte = punkte - 100                                      #ob Bäume
            skier.image = pygame.image.load("skier_crash.png")         #umgefahren
            skier.winkel = 0                                           #oder Fahnen
            geschwindigkeit = [0, 6]                                   #gesammelt
            getroffen[0].vorbei = True                                 #werden
        elif getroffen[0].type0= "fahne" and not getroffen[0].vorei:
            punkte += 10
            hindernisse.remove(getroffen[0])                           #

    punktzahl_text = font.render("Punktzahl: " +str(punkte), 1, (0, 0, 0)
    animiere()                                    # ^ zeigt Punktzahl an
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Schau dir die vorletzte Zeile doch einfach noch einmal genauer an.
Das Leben ist wie ein Tennisball.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bonustipp: ``_init_`` ist nicht das gleiche wie ``__init__``. Was du suchst ist letzteres.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

phoe1 hat geschrieben:Kann mir einer helfen?
Du kannst dir auch selbst helfen. Test die verschiedenen Teile deines Programms einzeln, dann findest du auch die Fehler.
phoe1
User
Beiträge: 2
Registriert: Dienstag 8. März 2011, 17:21

Wie macht man den ganz langen Unterstrich?
Ich mach ihn mit ShiftR. und -
_
Sonst kenn ich keinen!
-_ | / \ {[()]}
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Das sind zwei Zeichen! _ + _ = __
Antworten