Comment faire des boutons en python/pygame?

Je suis en train de faire un jeu dans pygame et sur le premier écran, je veux qu'il y ait des boutons que vous pouvez appuyer sur (i) lancez le jeu, (ii) de la charge d'un nouvel écran avec les instructions, et (iii) de quitter le programme.

J'ai trouvé cette ligne de code pour la fabrication des boutons, mais je ne comprends pas vraiment (je ne suis pas bon à la programmation orientée objet). Si je pouvais obtenir quelques explications sur ce qu'il fait, ce serait super. Aussi, lorsque je l'utilise et essayez d'ouvrir un fichier sur mon ordinateur à l'aide du chemin d'accès au fichier, j'obtiens l'erreur sh: filepath :Permission denied, qui je ne sais pas comment le résoudre.

#load_image is used in most pygame programs for loading images
def load_image(name, colorkey=None):
fullname = os.path.join('data', name)
try:
image = pygame.image.load(fullname)
except pygame.error, message:
print 'Cannot load image:', fullname
raise SystemExit, message
image = image.convert()
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0,0))
image.set_colorkey(colorkey, RLEACCEL)
return image, image.get_rect()
class Button(pygame.sprite.Sprite):
"""Class used to create a button, use setCords to set 
position of topleft corner. Method pressed() returns
a boolean and should be called inside the input loop."""
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image, self.rect = load_image('button.png', -1)
def setCords(self,x,y):
self.rect.topleft = x,y
def pressed(self,mouse):
if mouse[0] > self.rect.topleft[0]:
if mouse[1] > self.rect.topleft[1]:
if mouse[0] < self.rect.bottomright[0]:
if mouse[1] < self.rect.bottomright[1]:
return True
else: return False
else: return False
else: return False
else: return False
def main():
button = Button() #Button class is created
button.setCords(200,200) #Button is displayed at 200,200
while 1:
for event in pygame.event.get():
if event.type == MOUSEBUTTONDOWN:
mouse = pygame.mouse.get_pos()
if button.pressed(mouse):   #Button's pressed method is called
print ('button hit')
if __name__ == '__main__': main()

Merci à tous ceux qui peuvent m'aider.

InformationsquelleAutor user1334014 | 2012-04-16