Hallo,
ich hab in den letzten paar Tagen ein Python/ Pygame Spiel programmiert.
Nun jetzt wo ich fast fertig bin tritt ein Fehler auf und zwar:
Das eigentliche Spiel läuft nur wenn man die Maus in dem Fenster bewegt ansonsten tut sich garnicht.
Habt ihr ne Idee??
Schon einmal danke
such schon 2 Stunden
-
- User
- Beiträge: 3
- Registriert: Donnerstag 11. Juni 2009, 11:10
also ist sehr einfach gehalten ist nur en Projekt für die Schule aber das müsste eig der teil sein wo der Fehler seien müsste aber ich find keinen
Code: Alles auswählen
while aktiv:
for event in pygame.event.get():
if spielstarten==0:
if event.type == pygame.QUIT or (event.type== KEYDOWN and event.key == K_ESCAPE):
sys.exit()
mousetaste=pygame.mouse.get_pressed()
mousepos=pygame.mouse.get_pos ()
mouseposx=mousepos[0]
mouseposy=mousepos[1]
mleft=mousetaste[0]
if mouseposx>12 and mouseposx<310 and mouseposy>525 and mouseposy<718:
screen.blit (Menuele, Menuelerect)
else:
screen.blit (Menuest, Menuestrect)
if mouseposx>344 and mouseposx<639 and mouseposy>525 and mouseposy<718:
screen.blit (Menuemi, Menuemirect)
if mouseposx>660 and mouseposx<995 and mouseposy>525 and mouseposy<718:
screen.blit (Menuesc, Menuescrect)
if mouseposx>12 and mouseposx<310 and mouseposy>525 and mouseposy<718 and mleft>0:
screen.blit (Menuele, Menuelerect)
spielstarten=1
speedx=6
speedy=6
if mouseposx>344 and mouseposx<639 and mouseposy>525 and mouseposy<718 and mleft>0:
screen.blit (Menuemi, Menuemirect)
spielstarten=1
speedx=14
speedy=14
speedfactor=1.5
if mouseposx>660 and mouseposx<995 and mouseposy>525 and mouseposy<718 and mleft>0:
screen.blit (Menuesc, Menuescrect)
spielstarten=1
speedx=20
speedy=20
speedfactor=2
pygame.display.flip()
###Schleife
if spielstarten == 1:
if event.type == pygame.QUIT or (event.type== KEYDOWN and event.key == K_ESCAPE):
sys.exit()
balkenrect=balkenrect.move(speedbx,0)
keystate=pygame.key.get_pressed()
if keystate[K_RIGHT]:
speedbx=10*speedfactor
else:
if keystate[K_LEFT]:
speedbx=-10*speedfactor
else:
speedbx=0
ballrect=ballrect.move(speedx,speedy)
if (ballrect.left < 0 or ballrect.right > width ):
speedx=-speedx
if (ballrect.top < 0):
speedy = -speedy
Code: Alles auswählen
for event in pygame.event.get()
und die wird nur ausgeführt wenn was in der event-queue steht.
die maus produziert events wenn du sie bewegst, daher das verhalten.
setz mal code-tags um deinen code.
http://www.kinderpornos.info
-
- User
- Beiträge: 3
- Registriert: Donnerstag 11. Juni 2009, 11:10
ok ich versuchs mal danke
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Bie der Gelegenheit solltest du den Thread auch umbenennen, den mit so einem Namen hat man ganz sicher keine Lust dir zu helfen. Ich hab den Thread auch gleich mal ins pygame-Forum verschoben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Mal ein paar Anmerkungen:
- "spielstarten" sollte besser ein Boolean sein
- es gibt Tupel: "mousepos = (23, 42)
- Konstanten solltest du auch benuzen
- "elif" könntet du sicher auch gebrauchen
- du schreibst unglaublich viel Code doppelt, den kann man locker auf die Hälfte reduzieren
- dann solltest du dich noch für Deutsch oder Englisch entscheiden, aber nicht beides gemischt
- und natürlich der obligatorische Hineweis auf PEP8
- "spielstarten" sollte besser ein Boolean sein
- es gibt Tupel: "mousepos = (23, 42)
- Konstanten solltest du auch benuzen
- "elif" könntet du sicher auch gebrauchen
- du schreibst unglaublich viel Code doppelt, den kann man locker auf die Hälfte reduzieren
- dann solltest du dich noch für Deutsch oder Englisch entscheiden, aber nicht beides gemischt
- und natürlich der obligatorische Hineweis auf PEP8
Das Leben ist wie ein Tennisball.