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

besoin d'aide en python(pygame)

Tismadde
Tismadde
Niveau 3
21 avril 2019 à 11:02:17

Alors voilà, d'abord bonjour à tous.

J'ai besoin d'aide pour coder un mario bros, dans le cadre d'un projet de Bac en ISN. Je suis en PYTHON avec PYGAME
Le problème qui me fait venir vers vous est le suivant: j'ai créé une collisions entre mario et un goomba qui inflige des dégâts à mario.
Problème, les dégâts s'additionnent super vite et les 100 de santé de mario sont mis à 0 en une demi-seconde de contact.
Je souhaite donc mettre un délai entre le moment où le premier coup est prise et le moment où mario peut en prendre un deuxième, mettre ma boucle collision en pause si on veut.
J'ai essayé avec pygame.wait , time.sleep , et pygame.delay, mais ca met l'intégralité du jeu en pause, pas que la fonction qui m'intéresse.

Je suis ouvert à toutes les suggestions.
programme actuel: https://pastebin.com/NGjA2Ceg

Message édité le 21 avril 2019 à 11:03:26 par Tismadde
boboboris1719
boboboris1719
Niveau 2
21 avril 2019 à 21:24:45

Hello,

Je pense que tu pourrais rajouter dans ta classe player un attribut supplémentaire qui serai un booléen :

self.collisionLocked = false

et du coup tu pourrais faire sa dans ta fonction collision de la classe goomba :

if (player.collisionLocked == false and not (blocks_hit_list == [])) and (player.rect.y >= (self.rect.y-60)):
player.health -= 1
player.collisionLocked = true

d'abord tu rajoutes dans ton if une clause si collisionLocked == false alors le joueur peut perdre de la vie. Ensuite dans le cas ou le joueur perdrait de la vie tu actives ton flag player.collisionLocked = true comme ça tu empêche la collision de se répéter dès la prochaine frame.

Ensuite il faudrait que ton flag collisionLocked passe à false au bout d'un certain délai. Je pense (mais je suis moins à l'aise là-dessus) que tu pourrais créer une méthode dans la classe player cette méthode serait démarrée dès lors que player.collisionLocked serait égal à false et vérifierait si un certain temps est passé avant de repasser le flag player.collisionLocked à true.

N'hésite pas à le faire un retour j'adore le développement de jeu et j'aimerai bien savoir comment ça a marché pour toi :)

Tismadde
Tismadde
Niveau 3
22 avril 2019 à 12:41:00

Merci pour ta réponse, je vais essayer ça et te tenir au courant dès que j'aurai tenté!:cimer:

Tismadde
Tismadde
Niveau 3
22 avril 2019 à 16:08:55

La première étape de ton idée fonctionne, c'est juste que le player.collisionLocked ne repasse pas en false après le timer que j'ai essayé de mettre en place.
Je vais continuer à chercher comment le faire re switcher puis je reviens vers vous!

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