Discussion:
[python-nl] Afbreken pygame vanaf toetsenbord
Marc Stevens
2014-08-27 17:49:01 UTC
Permalink
Aan de specialisten onder python,

Ik probeer al een tijdje pygame's programma's netjes af te werken door een
mogelijkheid in te bouwen om het programma af te sluiten op een professionele
manier.
Ik heb ook veel programma's bekeken en het afsluiten hiervan afgekeken, maar het
pygame programma moest altijd 'geforceerd' afgesloten worden, tot op het moment
dat ik een programma probeerde dat geschreven was voor een spel en met de cursor
toetsen werkte. En warempel..... het programma reageerde op het toesenbord. Je
kon met de cursortoetsen een sprite bewegen.
Ik heb toen het een en ander afgekeken en het het onderstaande programmaatje
bedacht, om eenvoudig te beginnen. Helaas werkt het niet. Wat doe ik fout?




import pygame
from pygame.locals import *
from sys import exit

pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)

while 1:
for event in pygame.event.get():
if event.type==QUIT:
return
pygame.draw.circle(screen,(255,0,0),[60,250],40)
pygame.display.flip()
keys=pygame.key.get_pressed()
if key[K_ESCAPE]:
break

pygame.quit()
Jeroen Bakker
2014-08-27 19:58:25 UTC
Permalink
Hey Marc,


Je identation is niet goed overgekomen om precies te zien hoe je code
eruit ziet. Het is beter om websites zoals pasteall.org te gebruiken om
sources te plakken. Dan weet je zeker dat de identation er goed uit ziet.
Ik neem aan dat de fout "SyntaxError: 'return' outside function" is

de "return" staat op een vreemde plek. Return zorgt dat je de huidige
functie afbreekt. Aangezien je programma geen functie kent, is dat een
beetje gek.

best om een vlag toe te voegen (running). Ook heb je een type fout Je
kent een variable toe aan "keys", maar vraag deze dan op aan "key".

Zie hier de aangepaste code:
http://www.pasteall.org/53683/python

Groeten,
Jeroen
Post by Marc Stevens
Aan de specialisten onder python,
Ik probeer al een tijdje pygame's programma's netjes af te werken door een
mogelijkheid in te bouwen om het programma af te sluiten op een professionele
manier.
Ik heb ook veel programma's bekeken en het afsluiten hiervan afgekeken, maar het
pygame programma moest altijd 'geforceerd' afgesloten worden, tot op het moment
dat ik een programma probeerde dat geschreven was voor een spel en met de cursor
toetsen werkte. En warempel..... het programma reageerde op het toesenbord. Je
kon met de cursortoetsen een sprite bewegen.
Ik heb toen het een en ander afgekeken en het het onderstaande programmaatje
bedacht, om eenvoudig te beginnen. Helaas werkt het niet. Wat doe ik fout?
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
return
pygame.draw.circle(screen,(255,0,0),[60,250],40)
pygame.display.flip()
keys=pygame.key.get_pressed()
break
pygame.quit()
_______________________________________________
Python-nl mailing list
Python-nl at python.org
https://mail.python.org/mailman/listinfo/python-nl
JMH
2014-08-27 19:04:20 UTC
Permalink
QUIT event komt van Windows als je op de Close button klikt.

Misschien dat de event.pump function nog toegevoegd moet worden.

Voor quit mbv ESC key, gebruik keys.get_pressed() en check the logical van de ESC key.

Met vriendelijke groeten,
Jacco Hoekstra
Post by Marc Stevens
Aan de specialisten onder python,
Ik probeer al een tijdje pygame's programma's netjes af te werken door een
mogelijkheid in te bouwen om het programma af te sluiten op een professionele
manier.
Ik heb ook veel programma's bekeken en het afsluiten hiervan afgekeken, maar het
pygame programma moest altijd 'geforceerd' afgesloten worden, tot op het moment
dat ik een programma probeerde dat geschreven was voor een spel en met de cursor
toetsen werkte. En warempel..... het programma reageerde op het toesenbord. Je
kon met de cursortoetsen een sprite bewegen.
Ik heb toen het een en ander afgekeken en het het onderstaande programmaatje
bedacht, om eenvoudig te beginnen. Helaas werkt het niet. Wat doe ik fout?
import pygame
from pygame.locals import *
from sys import exit
pygame.init()
size=[400,300]
screen=pygame.display.set_mode(size)
return
pygame.draw.circle(screen,(255,0,0),[60,250],40)
pygame.display.flip()
keys=pygame.key.get_pressed()
break
pygame.quit()
_______________________________________________
Python-nl mailing list
Python-nl at python.org
https://mail.python.org/mailman/listinfo/python-nl
Loading...