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] Déplacement projectile

[iota]
[iota]
Niveau 6
18 février 2014 à 21:18:43

Bonsoir,

J'aimerais demander de l'aide pour un petit problème : dans mon jeu, lorsqu'on appuie sur la touche espace, un obus est créé et est censé se déplacer dans la direction ou le tank est tourné, tout simplement.

J'ai suivi un exemple sur un site internet, mais il y a un problème : le projectile se déplace normalement mais s'affiche en plein de fois sur toute la trajectoire qu'il emprunte. Je suppose que c'est un problème dans la boucle, qui créée en permanence l'objet.

Mais je ne vois pas comment faire autrement, et pourtant sur le tutoriel le mec fait la même chose et je suppose que ça doit marcher pour lui.

Voila mon code, ne faites pas attention à certains détails comme les 4 même images pour l'obus, c'est un peu en chantier.

http://pastebin.com/ANURWBaL

Merci d'avance.

fandemangas
fandemangas
Niveau 3
18 février 2014 à 21:50:25

Salut,

En général, il y a toujours une instruction pour nettoyer l'écran afin d'éviter ce genre de situation. Il n'y a aucune instruction pour cela dans ton code.

http://stackoverflow.com/questions/1634509/is-there-any-way-to-clear-a-surface

[iota]
[iota]
Niveau 6
19 février 2014 à 20:14:23

Merci de ton aide, j'ai trouvé une autre manière de faire et ça marche ! :-)

Par contre les obus sont créés en masse, j'essaie de résoudre le problème mais j'ai un peu de mal :(

darkdark
darkdark
Niveau 9
19 février 2014 à 22:39:58

Je n'ai jamais fait de Python, mais un détails m'a quand même accroché dans ton code :

while 1:
[...]

  1. Si touche espace appuyée, création de l'obus

if event.type == KEYDOWN:
-if event.key == K_SPACE:
--obus = Obus("obus.png", "obus.png", "obus.png", "obus.png")
[...]

Ton programme ne ferait pas plusieurs boucles pendant que tu appuies sur espace? Exemple, si tu tournes à 60 fps et tu enfonces espace pendant 1 sec, ça devrait créer 60 obus.

Peut-être associer la création d'obus au relâchement de la touche espace ? Ou un bool qui se souvient d'avoir créé un obus tant que la touche espace n'a pas été relâché ?

[iota]
[iota]
Niveau 6
19 février 2014 à 23:12:01

Merci de vos réponses, et oui effectivement créer une variable définissant si un tir a été effectue je sais le faire, mais disons que ce que je voudrais ce serait un délai entre 2 tirs.

Je pense faire une timeline qui autorise un tir toute les x secondes et qui est remise a 0 a chaque fois qu'un tir a lieu. Ca devrait marcher, je verrais ca demain, mais en attendant merci pour vos réponses :)

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