Seite 1 von 2
Verfasst: Dienstag 17. Januar 2006, 19:13
von modelnine
Musst aber nicht gleich zu jemanden sagen, das er bullshit redet, nur weil er sich mal irrt!
Pardon...
Nur: wenn Du input() als "Zahlen-Eingabe" verkaufst darfst Du Dich nicht wundern wenn ein Newbie der Python zum ersten mal probiert völlig schokiert ist wenn das dann andere Dinge tut (also zum Bleistift wenn man 1 eingibt ein integer 1 rauskommt, und kein float)...
Und: ich hasse es die Fragen die daraus entstehen immer und immer wieder beantworten zu müssen nur weil jemand probiert hat den Leuten Schritt 2 vor Schritt 1 zu erklären.
Man sagt den Leuten einfach: "don't use input." Das reicht, bis sie dann verstehen was dahinter steht, dann erklärt man ihnen warum man input nicht benutzen soll, und wenn sie es dann doch tun kann man immer noch sagen: "Ich hab Dich gewarnt."
--- Heiko.
Verfasst: Dienstag 17. Januar 2006, 21:44
von Python 47
Ok ist gut!
Verfasst: Dienstag 17. Januar 2006, 22:09
von Thyestes
ich will euch ja nicht nerven, aber kann mir einer bitte sagen, was ich noch verändern muss, damit das Prog läuft? Danke
Verfasst: Dienstag 17. Januar 2006, 22:22
von modelnine
Ich hab Dir ein funktionierendes Programm gepostet. Guck da bitte nach wie Du manche Dinge anders machen kannst, und übernimm das was Du verstehst.
Es geht nicht an das wir Dir hier Dein Programm schreiben, weil das hier kein Hausaufgabenkanal ist...
--- Heiko.
Verfasst: Dienstag 17. Januar 2006, 22:52
von Thyestes
das Programm fumktioniert bei mir aber nicht.
es kommt zwar keine Fehlermeldung, aber der Bildschirm bleibt weiß. Trotzdem danke für die Mühe
edit:
auf einmal läufts. Vielen Dank. Damit kann ich mein programm deutlich verbessern.
Du hast viel "schöner" programmiert als ich.
Verfasst: Mittwoch 18. Januar 2006, 08:45
von helmut
@ 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
Verfasst: Mittwoch 18. Januar 2006, 13:38
von Python 47
Lol cool Buche hat ne dichte von 7.86
Nee also nochmal ins Tafelwerk schauen und verbessern!
Re: Token Error:
Verfasst: Dienstag 8. März 2011, 17:30
von phoe1
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
Re: Token Error:
Verfasst: Dienstag 8. März 2011, 17:55
von EyDu
Hallo.
Schau dir die vorletzte Zeile doch einfach noch einmal genauer an.
Re: Token Error:
Verfasst: Mittwoch 9. März 2011, 02:17
von Leonidas
Bonustipp: ``_init_`` ist nicht das gleiche wie ``__init__``. Was du suchst ist letzteres.
Re: Token Error:
Verfasst: Mittwoch 9. März 2011, 08:15
von Darii
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.
Re: Token Error:
Verfasst: Freitag 11. März 2011, 14:30
von phoe1
Wie macht man den ganz langen Unterstrich?
Ich mach ihn mit ShiftR. und -
_
Sonst kenn ich keinen!
-_ | / \ {[()]}
Re: Token Error:
Verfasst: Freitag 11. März 2011, 14:35
von frabron
Das sind zwei Zeichen! _ + _ = __