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]probleme avec move


Sujet :

GUI Python

  1. #1
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut [Pygame]probleme avec move
    Bonjour
    J’essaie de faire un petit jeu avec pygame.
    tu dirige un petit monstre qui vole et un cible te suis.
    Mais le move de la cible ne fonctionne que d'un pixel seulement quand le monstre arrive a son niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    import pygame
    from pygame.locals import *
    from math import*
    pygame.init()
    class cible():
        def __init__(self):
            self.img=pygame.image.load("cible.png").convert_alpha()
            self.p_cible=self.img.get_rect()
            self.vx=0.0
            self.vy=0.0
            self.p_cible=self.p_cible.move(40,40)
        def disp_cible(self):
            fenetre.blit(self.img,self.p_cible)
        def update_vec(self,point):
            an=atan2(self.p_cible[0]-point[0],self.p_cible[1]-point[1])
            self.vx=cos(an)
            self.vy=sin(an)
            self.p_cible=self.p_cible.move(self.vx,self.vy)
    fenetre = pygame.display.set_mode((640, 480))
    perso =pygame.image.load("monstre.png").convert_alpha()
    fond =pygame.image.load("fond.png").convert_alpha()
    cible1=cible()
    pos_fond=fond.get_rect()
    position_perso = perso.get_rect()
    fenetre.blit(perso, position_perso)
    pygame.display.flip()
    pygame.key.set_repeat(10,10)
    continuer = True
    position_perso = position_perso.move(0,460)
    vy=0
    key=[False]*323
    while continuer:
        pygame.time.Clock().tick(100)
        for event in pygame.event.get():
            if event.type == QUIT:
                continuer = False
            if event.type == KEYDOWN:
                key[event.key]=True
            if event.type == KEYUP:
                key[event.key]=False
        if key[K_UP]:
            vy=-5
        if key[K_RIGHT]:
            position_perso = position_perso.move(3,0)
        if key[K_LEFT]:
            position_perso = position_perso.move(-3,0)
        position_perso = position_perso.move(0,vy)
        if position_perso[0]<=0:
            position_perso[0]=0
        if position_perso[0]>=620:
            position_perso[0]=620
        if position_perso[1]<=0:
            position_perso[1]=1
            vy=0
        if position_perso[1]>460:
            position_perso[1]=460
            vy=0
        vy+=0.3
        cible1.update_vec(position_perso)
        fenetre.blit(fond, pos_fond)
        cible1.disp_cible()
        fenetre.blit(perso, position_perso)
        pygame.display.flip()
    pygame.quit()
    voici les images utilisées:
    Nom : a.png
Affichages : 299
Taille : 373 octets
    Nom : b.gif
Affichages : 204
Taille : 317 octets
    Nom : d.jpeg
Affichages : 231
Taille : 92,2 Ko
    PS:pourquoi n'y a-t-il pas de sous forum pygame?C'est pourtant assez connu.

  2. #2
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    finalement,j'ai trouvé
    la fonction move converti en entier d'abors
    j'ai donc manipulé directement p_cible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class cible():
        def __init__(self):
            self.img=pygame.image.load("cible.png").convert_alpha()
            self.p_cible=self.img.get_rect()
            self.vx=0.0
            self.vy=0.0
            self.px=40.0
            self.py=40.0
            self.p_cible=self.p_cible.move(40,40)
        def disp_cible(self):
            fenetre.blit(self.img,self.p_cible)
        def update_vec(self,point):
            an=atan2(self.p_cible[0]-point[0],self.p_cible[1]-point[1])
            self.vx=-2*sin(an)
            self.vy=-2*cos(an)
            self.px+=self.vx
            self.py+=self.vy
            self.p_cible[0]=int(self.px)
            self.p_cible[1]=int(self.py)

  3. #3
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut autre probleme
    Maintenant,j'essaye de faire une autre classe pour que la cible suive une direction avec une vitesse constante et qui la dévie vers le monstre.
    Mais je n'y arrive pas vraiment
    J'ai déjà fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class fleche():
        def __init__(self,x,y):
            self.img=pygame.image.load("cible.png").convert_alpha()
            self.p_fleche=self.img.get_rect()
            self.vo=0
            self.vr=3
            self.px=x
            self.py=y
            self.p_fleche=self.p_fleche.move(x,y)
        def disp_fleche(self):
            fenetre.blit(self.img,self.p_fleche)
        def update_vec(self,point):
            an=atan2(point[0]-self.p_fleche[0],point[1]-self.p_fleche[1])
            if (self.vo-an)%r<pi:
                self.vo+=0.1
            else:
                self.vo-=0.1
            self.px+=self.vr*cos(self.vo)
            self.py+=self.vr*sin(self.vo)
            self.p_fleche[0]=int(self.px)
            self.p_fleche[1]=int(self.py)
    Malheureusement,ça ne marche pas

  4. #4
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    bon,comme le titre n'est plus trop adapté,je vais créer un nouveau sujet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec l'importation de pygame
    Par kepon72 dans le forum Déploiement/Installation
    Réponses: 17
    Dernier message: 18/12/2008, 19h48
  2. [pygame]Probleme avec init
    Par xtrema dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 30/07/2007, 14h34
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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