CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PYGAME] Help

Mouig
Mouig
Niveau 6
15 août 2020 à 04:03:00
import sys
import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640, 480))

blue = (0,0,255)
radius = 64
width = 10
getCenter = screen.get_rect()

bob = pygame.draw.circle(screen, blue, (getCenter.w / 2, getCenter.h / 1.5 + pos_y), radius, width)

clock = pygame.time.Clock()

while True:
    for ev in pygame.event.get():
        if ev.type == QUIT:
            pygame.quit()
    clock.tick(60)
    pygame.display.flip()

J'aimerais faire chuter 'bob' jusqu'à ce qu'il quitte l'écran mais malgré 1h de recherche je ne trouve vraiment pas :(

Grimmys
Grimmys
Niveau 19
15 août 2020 à 17:21:55

Salut,

C'est quoi pos_y ? :(
Tu ne déclares pas cette variable dans le code que tu nous montres...

Mais en gros, si pos_y représente le décalage en y par rapport au centre de " bob ", il faut simplement que tu incrémentes cette valeur dans ta boucle de jeu principale.
Aussi, le dessin de " bob " doit se faire dans la boucle principale, pour que le déplacement soit visible. :ok:

Enfin, il te reste à déterminer ce que tu dois faire quand bob a atteint la limite de l'écran (sinon... Bah le programme va crash car tu vas tenter de dessiner bob hors-screen :hap: ) et à temporiser ton programme car sinon la chute risque d'être extrêmement rapide d'un point de vue humain.

Aussi, pas besoin de garder une référence sur la valeur de retour de pygame.draw.circle()... Je ne savais même pas qu'il y avait une valeur de retour, mais dans ton cas, elle ne sert à rien.... (en gros, fait juste pygame.draw.circle(), supprime ta variable bob).

Mouig
Mouig
Niveau 6
15 août 2020 à 22:51:33

Merci pour les conseil mais il y a un truc que j'ai du mal comprendre. A chaque itération de la boucle principale un nouveaux cercle est dessiné donc ça donne ça : https://image.noelshack.com/fichiers/2020/33/6/1597524561-screenshot-20200815-224907.jpg
https://image.noelshack.com/fichiers/2020/33/6/1597524565-screenshot-20200815-224859.jpg

Comment faire pour que le cercle se déplace et non en dessiner un autre ? :(

Mouig
Mouig
Niveau 6
15 août 2020 à 22:52:36

Le 15 août 2020 à 22:51:33 MouiG a écrit :
Merci pour les conseil mais il y a un truc que j'ai du mal comprendre. A chaque itération de la boucle principale un nouveaux cercle est dessiné donc ça donne ça : https://image.noelshack.com/fichiers/2020/33/6/1597524561-screenshot-20200815-224907.jpg
https://image.noelshack.com/fichiers/2020/33/6/1597524565-screenshot-20200815-224859.jpg

Comment faire pour que le cercle se déplace et non en dessiner un autre ? :(

import sys
import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640, 480))

blue = (0,0,255)
radius = 64
width = 10
getCenter = screen.get_rect()
pos_y = 0

clock = pygame.time.Clock()

while True:
    for ev in pygame.event.get():
        if ev.type == QUIT:
            pygame.quit()
    pygame.draw.circle(screen, blue, 			(getCenter.w / 2, getCenter.h / 1.5 + 		pos_y), radius, width)
    pos_y += 1
    clock.tick(60)
    pygame.display.flip()

Voici le code

Grimmys
Grimmys
Niveau 19
16 août 2020 à 03:03:12

Oui excuse moi j'ai oublié de te préciser, mais il faut " clean " l'écran avant de dessiner. :oui:

Pour cela tu mets une instruction screen.fill(COLOR) juste avant le dessin de ton cercle.
COLOR devant correspondre à la couleur de ton background, en l'occurrence, noir. :oui:

Message édité le 16 août 2020 à 03:03:43 par Grimmys
Mouig
Mouig
Niveau 6
16 août 2020 à 12:01:48

Super ça marche nickel merci a toi :-)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment