• logo categorie
    RESOLU

    Comment créer une interface graphique avec Pygame ?


    Bonjour,

    J'aimerais m'amuser à faire un petit jeu vidéo en utilisant le module Pygame du langage Python et j'aimerais savoir comment cela s'utilise.

    Merci d'avance !
    Développement 2D, 3D et Jeux
    Python & Zope
    Python
    Pygame
    Jeux Vidéo
    utilisateur
    Paul
    Posté le : 26 Août à 15:54
    48 636 vues

  • 56
    Klyde
    Posté le : 26 Août à 15:59
    Salut Paul,

    Pour faire une interface graphique en Python à l'aide de Pygame, je te conseille de bien regarder un tuto sur les classes en Python, plus généralement à la programmation orienté objet. Pour t'aider, j'ai écrit un petit code, il est pas parfait mais j'espère que ça pourra t'aider.

    #! /usr/bin/env python
    # -*- coding: iso-8859-1 -*-
    
    import pygame
    from pygame.locals import *
    
    WIDTH = 512
    HEIGHT = 512
    
    class Perso(object):
    	"""docstring for Perso"""
    	def __init__(self, nom, x, y, pic):
    		self.nom = nom
    		self.coord = [x, y]
    		self.pic = pygame.image.load(pic).convert()
    		self.allPic = self.makeTile()
    		self.currentImage = self.allPic[2][0]
    		self.noMove = self.allPic[2][0]
    
    	def makeTile(self):
    		allPic = [{}, {}, {}, {}]
    		for y, i in zip(range(0, 108, 27), range(0, 4)):
    			for x, j in zip(range(0, 96, 24), range(0, 4)):
    				allPic[i][j] = self.pic.subsurface(x, y, 24, 27)
    		return allPic
    
    	def disp(self, j):
    		self.currentImage.set_colorkey((0, 128, 128))
    		if j == 0:
    			screen.blit(self.noMove, self.coord)
    		else:
    			screen.blit(self.currentImage, self.coord)
    
    	def moveUp(self, j):
    		if self.coord[1] > 0:
    			self.coord[1] -= 4
    		self.currentImage = self.allPic[3][j]
    		self.noMove = self.allPic[3][0]
    
    	def moveDown(self, j):
    		if self.coord[1] < HEIGHT - 32:
    			self.coord[1] += 4
    		self.currentImage = self.allPic[2][j]
    		self.noMove = self.allPic[2][0]
    
    	def moveRight(self, j):
    		if self.coord[0] < WIDTH - 32:
    			self.coord[0] += 4
    		self.currentImage = self.allPic[1][j]
    		self.noMove = self.allPic[1][0]
    
    	def moveLeft(self, j):
    		if self.coord[0] > 0:
    			self.coord[0] -= 4
    		self.currentImage = self.allPic[0][j]
    		self.noMove = self.allPic[0][0]
    
    pygame.init()
    screen = pygame.display.set_mode((WIDTH,HEIGHT))
    pygame.display.set_caption('Mon premier jeu en Python')
    link = Perso("Link", 255, 255, "link_state.png")
    bg = pygame.image.load("bg.png").convert()
    j = 0
    screen.blit(bg, (0, 0))
    link.disp(j)
    pygame.display.flip()
    continuer = True
    while continuer:
    	event = pygame.event.poll()
    	if event.type == QUIT:
    		continuer = False
    	k = pygame.key.get_pressed()
    	if k[K_ESCAPE]:
    		continuer = False
    	if k[K_DOWN]:
    		j = (j + 1) % 4
    		link.moveDown(j)
    	elif k[K_UP]:
     		j = (j + 1) % 4
     		link.moveUp(j)
    	elif k[K_RIGHT]:
     		j = (j + 1) % 4
     		link.moveRight(j)
    	elif k[K_LEFT]:
     		j = (j + 1) % 4
     		link.moveLeft(j)
    	else:
     		j = 0
    	screen.blit(bg, (0, 0))
    	link.disp(j)
    	pygame.display.flip()
    	pygame.time.wait(40)
    


    Si tu veux tester ce programme, n'hésite pas à me recontacter pour que je te passe aussi les images que j'ai utilisé.
  • ⇒ Si vous êtes ici c'est que le sujet vous intéresse ^^
    Inscrivez-vous sur Oyant, apportez votre contribution sur ce sujet et gagnez de l'argent :

    Inscription
    Répondre
  • logo categorie
    RESOLU

    Différence entre cep et cèpe ?

    Bonjour !
    Existe-t-il une différence entre cep et cèpe ?
    Merci
    Langues
    Acronymes
    Apprentissage des langues
    Langue française
    acronyme
    cep
    cèpe
  • logo categorie
    RESOLU

    Obéissance et soumission.

    Bonjour
    La différence entre obéissance et soumission?
    Langues
    Soumission
    Obéissance
  • logo categorie
    RESOLU

    Acronyme : ancre et encre ?

    Salut !
    Donnez moi la différence entre ces acronymes : ancre et encre
    s'il vous plaît :))
    Langues
    Acronymes
    Langue française
    acronyme
    ancre
    encre
  • logo categorie
    RESOLU

    Différence entre bai et baie ?

    HEY HEY !
    Pourriez-vous me donner la différence entre "bai" et "baie" s'il vous plaît ?
    Merci beaucoup les amis
    Acronymes
    bai
    baie
  • logo categorie
    RESOLU

    différence entre "en train" et "entrain" ?

    Salut!
    Quelle est la différence entre "en train" et "entrain" s'il vous plaît ?
    Acronymes
    en train
    entrain
    acronyme
  • logo categorie
    RESOLU

    Désirer et aimer

    Bonjour
    J'ai entendu dire que désirer et aimer est la même chose?
    Langues
    Aimer
    Désirer
  • logo categorie
    RESOLU

    Exaucer et exhausser ?

    Bonjour, bonjour!

    Pouvez-vous me donner la différence entre exaucer et exhausser ?!
    S'il vous plaît !
    Culture
    Acronymes
    culture
    acronyme
    différence
    exaucer
    exhausser
  • logo categorie
    RESOLU

    Efficacité et pertinence

    À votre avis efficacité et pertinence ont le même sens?
    Langues
    Pertinence
    Efficacité
  • logo categorie
    RESOLU

    La différence entre donneur et donateur

    Salut
    S'il vous plait ,la différence entre donneur et donateur?
    Langues
    Donneur
    Donateur
  • logo categorie

    Différencen entre foie, foi et fois ?

    BONJOUR A TOUS !

    Donnez-moi la différence entre ces trois termes : foie, fois et foi svp !
    Merci d'avance les amis
    Acronymes
    foie
    foi
    fois
  • logo categorie
    RESOLU

    La différence entre sensation et émotion

    Bonjour
    La différence entre sensation et émotion?
    Langues
    Sensation
    Emotion
  • logo categorie
    RESOLU

    Différence entre lasser et lacer ?

    Bonjour!

    Je sais que les deux orthographes existent, mais quelle est la différence entre lasser et lacer svp ?!
    Merci d'avance pour votre aide :)
    Langues
    Acronymes
    acronyme
    lasser
    lacer
  • logo categorie
    RESOLU

    Comment récupérer une partie d'une chaine de caractère en PHP

    Salut,
    J'aimerais récupérer une partie d'une chaine en PHP, en fait il s'agirait de récupérer le href d'une balise a, quelqu'un aurait une idée?

    Merci d'avance!
    Langages serveur
    PHP
  • logo categorie
    RESOLU

    La différence entre chiffre et nombre

    Salut
    Expliquez moi la différence entre chiffre et nombre?
    Merci d'avance.
    Langues
    Chiffre
    Nombre
  • logo categorie
    RESOLU

    Quelle est la différence entre résonner et raisonner ?

    Hello everybody!

    J'ai des difficultés à savoir quel terme employer.
    Pourriez-vous m'éclairer sur l’utilisation de chacun de ces termes ?
    Merci
    Culture
    Acronymes
    acronyme
    raisonner
    résonner
  • logo categorie
    RESOLU

    Avenue et boulevard

    Bonjour
    La différence entre avenue et boulevard, s'il vous plait?
    Langues
    Avenue
    Boulevard
  • logo categorie
    RESOLU

    Différence entre patte et pâte ?

    Coucou amis oyantiens!

    Pouvez-vous m'éclairer sur la différence entre ces deux termes : pâte et patte ?!
    Merci d'avance
    Acronymes
    acronyme
    pâte
    patte
  • logo categorie
    RESOLU

    Différence entre reine, renne et rêne ?

    Salut à tous !
    Pouvez-vous me donner la différence entre reine, renne et rêne ?!
    Merci d'avance ;)
    Je compte sur vous !!
    Culture
    Acronymes
    acronyme
    reine
    renne
    rêne
  • logo categorie
    RESOLU

    Différence entre repaire et repère ?!

    Hi!
    Aidez-moi s'il vous plaît !
    Culture
    Acronymes
    repaire
    repère
  • logo categorie
    RESOLU

    Différence entre roder et rôder ?

    Salut à tous !
    Pouvez-vous me donner la différence entre roder et rôder s'il vous plaît?!
    Merci
    Acronymes
    acronyme
    roder
  • Veuillez vous connecter pour profiter pleinement de toutes les fonctionnalités de Oyant.
    Connexion
    Inscription

    Poster une question

    AnimauxApplicationsArnaquesAutres langagesBases de donnéesBeauté et ModeC et C++Cartes de voeux, lettres, poèmes et discoursCMS (Système de gestion de contenu)CollectionCuisineCultureDémarches administrativesDivertissementDotnetDroitEmploiEmploi et études en informatiqueEnseignementEntrepriseEnvironnementEvénementsFinanceGénéral développementImmobilier, logement et urbanisme    JavaLanguesLogicielsMétiersNouvelles technologiesPHPPrestations socialesRéservé aux adultesSantéSportSystèmesTransportsVie pratiqueWebmasters - Développement web 3.067 Utlisateurs parcourent Oyant en ce moment