IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

[Pygame] Demande d'aide pour coder un jeu


Sujet :

GUI Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Pygame] Demande d'aide pour coder un jeu
    Bonjour !

    Actuellement en Terminale S, j'ai un projet à faire dans le cadre de la spécialité ISN. Avec un ami, nous avons décidé de programmer un petit jeu de plateforme en utilisant l'interface graphique Pygame.

    Cependant, étant totalement débutants, nous rencontrons quelques difficultés. Pour ma part, je ne trouve pas comment faire pour placer une plateforme, et à ensuite faire en sorte qu'elle ne soit pas traversable et que le personnage s'arrête dessus. Mon binôme, lui, galère à mettre en place le saut.

    Je vous demande donc, s'il vous plait, de nous aider à passer ces étapes pour que nous puissions continuer.

    Voilà notre minuscule bout de code :

    import pygame

    from pygame.locals import *

    import math, sys

    pygame.init()

    #Ouverture de la fenêtre Pygame + fond

    fenetre = pygame.display.set_mode((1024, 819))

    fond = pygame.image.load("background.jpg").convert()

    fenetre.blit(fond, (0,0))

    #Personnage

    class Perso():

    ___def __init__(self):

    _self.img=pygame.image.load("perso.png").convert_alpha()

    _self.position_perso = self.img.get_rect()

    pygame.key.set_repeat(400, 30) #Déplacement continu

    continuer = 1

    perso=Perso()

    while continuer:

    ____for event in pygame.event.get():

    if event.type == QUIT:

    ____________continuer = 0

    if event.type == KEYDOWN:

    if event.key == K_RIGHT:

    ___________perso.position_perso = perso.position_perso.move(2,0)

    _______if event.key == K_LEFT:

    ___________perso.position_perso = perso.position_perso.move(-2,0)

    _______if event.key == K_BACKSPACE:

    ___________perso.position_perso =perso.position_perso.move(6, -3)

    #Raffraichissement

    fenetre.blit(fond,(0,0))

    fenetre.blit(perso.img, perso.position_perso)

    pygame.display.flip()

    Et voici les images du fond, du perso et des plateformes : http://hpics.li/7d00462 + http://hpics.li/2535138 + http://hpics.li/d1d226c (la plateforme n'a pas encore été redimensionnée)
    Merci.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 32
    Points : 36
    Points
    36
    Par défaut
    Salut,
    Je suis également en terminal S spé. ISN, et je fait également u jeu avec python et pygame pour mon projet final !

    Je sais pas si tu as avancé entre temps mais j'ai réfléchie à ton problème de plateforme:

    Voilà un classe qui permet de créer des plateformes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Plateforme():
    	def __init__(self):
    		self.img = pygame.image.load("plateform.png").convert_alpha() #Image de ta plateforme
    		self.liste = [] #Liste des plateformes crées
     
    	def new_plateforme(self, (x, y)): #Création d'une plateforme aux coordonnées (x, y)
    		self.liste += [(x, y)] #Ajout des coordonnées de la nouvelle plateforme à la liste
    Après tu te débrouille pour que les plateformes se crées au moment désiré, tu peux faire cela pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if event.key == K_RETURN:
    	plateforme.new_plateforme(perso.position_perso.topleft)
    Code que tu met dans la boucle for des événements, et qui va te générer une plateforme au coordonnées du perso.

    Pour l'affichage je te propose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #Rafraichissement
    fenetre.blit(fond,(0,0)) #Affichage du fond
    fenetre.blit(perso.img, perso.position_perso) #Affichage du perso
    if plateforme.liste != []: #Test si la liste est vide <=> Test si il y a des plateformes
    	for i in range(len(plateforme.liste)): #Parcoure la liste des plateforme
    		fenetre.blit(plateforme.img, plateforme.liste[i]) #Affiche les plateformes
    pygame.display.flip() #Rafraichissement de la fenetre
    Maintenant pour tester si le personnage rentre en contacte d'une plateforme, utilise les .Rect.
    Tu peux modifier la liste pour qu'en plus des coordonnées il y ai les .Rect des plateformes correspondantes, ainsi tu compare la position des plateformes et du personnage.

    Voilà, bonne chance pour votre projet

    PS: Je réfléchie au saut du personnage, je vous dits si je trouve quelque chose de concluant.

    PS2: (bouton [#]) la prochaine fois, c'est plus lisible !

Discussions similaires

  1. Demande d'aide pour la réalisation d'un petit jeu video
    Par Frank1010 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 08/09/2009, 08h59
  2. demande d'aide pour faire un plateau de jeu en java
    Par trodurlejava dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2007, 13h40
  3. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 03h40
  4. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo