Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pygame perte de FPS

Sujet résolu
    27 mai 2024 à 11:13:15

    Bonjour, 

    Comme indiqué dans le titre j'ai des pertes de FPS avec pygame.

    le code étant assez long, je pourrais le mettre si vous en avez besoin mais peut être auriez-vous une idée juste avec le cProfile et un peu d'explication contextuelle :) 

    Lorsque le personnage ne ce déplace pas je tourne a plus ou moins 80FPS: 

             1000151 function calls (998432 primitive calls) in 5.368 seconds
    
       Ordered by: internal time
    
       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
         3001    2.413    0.001    2.413    0.001 {method 'blit' of 'pygame.surface.Surface' objects}
         2982    1.668    0.001    1.762    0.001 {method 'blits' of 'pygame.surface.Surface' objects}
          426    0.339    0.001    0.802    0.002 {method 'recv' of '_socket.socket' objects}
         1718    0.272    0.000    0.272    0.000 {method 'render' of 'pygame.font.Font' objects}
          426    0.058    0.000    5.352    0.013 {built-in method pygame.display.update}
       230040    0.055    0.000    0.094    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:568(<genexpr>)
    5119/3412    0.051    0.000    1.179    0.000 {method 'acquire' of '_thread.lock' objects}
          427    0.051    0.000    0.757    0.002 {method 'connect' of '_socket.socket' objects}
          427    0.042    0.000    0.445    0.001 {method 'sendall' of '_socket.socket' objects}
        16189    0.030    0.000    0.035    0.000 {built-in method pygame.transform.scale}
          851    0.030    0.000    3.265    0.004 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\thread_affiche_info.py:14(run)
          425    0.025    0.000    0.025    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:375(font_constructor)
       236095    0.024    0.000    0.024    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:127(rect)
          426    0.024    0.000    0.025    0.000 {built-in method _pickle.loads}
          853    0.022    0.000    0.022    0.000 {built-in method _thread.start_new_thread}
          425    0.017    0.000    1.038    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:60(get_affiche)
          427    0.017    0.000    0.023    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:221(__init__)
       236095    0.016    0.000    0.016    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:119(image)
         7668    0.014    0.000    0.028    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:63(get_image)
          427    0.013    0.000    0.013    0.000 {function socket.close at 0x00000293FFC3B740}
         2130    0.013    0.000    0.013    0.000 {method 'update' of 'dict' objects}
          852    0.009    0.000    3.517    0.004 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1016(_bootstrap)
          426    0.008    0.000    2.048    0.005 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:40(set_envoi_donnee)
        10315    0.007    0.000    0.012    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:445(add)
          426    0.007    0.000    0.577    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:430(SysFont)
         7668    0.006    0.000    0.018    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:70(update)
          427    0.005    0.000    0.005    0.000 {built-in method pygame.event.get}
          426    0.005    0.000    0.005    0.000 {built-in method pygame.mouse.set_visible}
      854/853    0.005    0.000    1.322    0.002 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:637(wait)
         2130    0.005    0.000    0.445    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:557(draw)
      854/853    0.005    0.000    1.189    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:323(wait)
            1    0.005    0.005    0.005    0.005 {built-in method pygame.image.load}
          853    0.004    0.000    0.010    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1043(_set_tstate_lock)
          853    0.004    0.000    0.016    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:882(__init__)
          852    0.004    0.000    3.294    0.004 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1056(_bootstrap_inner)
          853    0.003    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:277(__init__)
      427/426    0.003    0.000    1.154    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:279(get_affiche_carte)
         1708    0.003    0.000    0.003    0.000 {built-in method _thread.allocate_lock}
         7668    0.003    0.000    0.003    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:29(get_on_hitbox)
        16813    0.003    0.000    0.003    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:123(image)
         2130    0.003    0.000    0.003    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:381(sprites)
          854    0.003    0.000    0.003    0.000 {method 'setsockopt' of '_socket.socket' objects}
         1706    0.003    0.000    0.003    0.000 {method 'release' of '_thread.lock' objects}
      854/853    0.002    0.000    1.341    0.002 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:973(start)
          426    0.002    0.000    0.780    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:11(connection)
          427    0.002    0.000    0.002    0.000 {built-in method _pickle.dumps}
         8610    0.002    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:171(add_internal)
          853    0.002    0.000    0.003    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:855(_maintain_shutdown_locks)
        15762    0.002    0.000    0.002    0.000 {built-in method pygame.mouse.get_pos}
          426    0.002    0.000    0.003    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:73(set_players)
          853    0.002    0.000    0.002    0.000 {built-in method _thread._set_sentinel}
          852    0.002    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1106(_delete)
         1705    0.002    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:652(__init__)
         8610    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:394(add_internal)
          853    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:837(_newname)
          853    0.001    0.000    0.008    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:616(set)
         8611    0.001    0.000    0.001    0.000 {method 'get_rect' of 'pygame.surface.Surface' objects}
          853    0.001    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:394(notify)
          853    0.001    0.000    0.007    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:588(__init__)
          852    0.001    0.000    0.017    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\thread_affiche_info.py:5(__init__)
         9898    0.001    0.000    0.001    0.000 {built-in method builtins.isinstance}
          426    0.001    0.000    2.055    0.005 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:184(get_all_info_carte)
         2556    0.001    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:47(<genexpr>)
          426    0.001    0.000    0.803    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:23(receive_complete_response)
          853    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\_weakrefset.py:85(add)
         8610    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:418(has_internal)
          426    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:268(update)
         4695    0.001    0.000    0.001    0.000 {built-in method builtins.hasattr}
            1    0.001    0.001    0.002    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:202(get_list_sol)
          426    0.001    0.000    0.005    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:396(_load_single_font)
         1706    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:302(__exit__)
         7668    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:41(get_maturite)
          851    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\_weakrefset.py:39(_remove)
            1    0.001    0.001    0.001    0.001 {method 'convert' of 'pygame.surface.Surface' objects}
          426    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:460(gestion_coordonnee_changement_map)
         1706    0.001    0.000    0.001    0.000 {method '__enter__' of '_thread.lock' objects}
          440    0.001    0.000    0.003    0.000 {method 'join' of 'str' objects}
         1290    0.001    0.000    0.001    0.000 {method 'get' of 'dict' objects}
         1718    0.001    0.000    0.001    0.000 {method 'set_alpha' of 'pygame.surface.Surface' objects}
         8719    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:131(rect)
         1706    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1234(daemon)
         2562    0.001    0.000    0.001    0.000 {built-in method _thread.get_ident}
         2130    0.001    0.000    0.001    0.000 {method 'isalnum' of 'str' objects}
          426    0.001    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:44(_simplename)
          853    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1354(_make_invoke_excepthook)
          426    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:117(set_player)
          426    0.001    0.000    0.008    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:203(get_affiche)
          427    0.001    0.000    0.001    0.000 {method 'tick' of 'pygame.time.Clock' objects}
          853    0.001    0.000    0.005    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:424(notify_all)
         1731    0.001    0.000    0.001    0.000 {built-in method time.time}
          853    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1483(current_thread)
          853    0.001    0.000    0.001    0.000 {method 'difference_update' of 'set' objects}
         1706    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:299(__enter__)
          516    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:68(get_image)
         1706    0.001    0.000    0.001    0.000 {method 'add' of 'set' objects}
         7668    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:175(get_x_position_carte)
          427    0.001    0.000    0.014    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:500(close)
         2562    0.001    0.000    0.001    0.000 {method '__exit__' of '_thread.RLock' objects}
         7668    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:211(get_y_position_carte)
         2559    0.001    0.000    0.001    0.000 {method '__exit__' of '_thread.lock' objects}
          426    0.001    0.000    0.001    0.000 {method 'endswith' of 'bytes' objects}
         1706    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:314(_is_owned)
          853    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1036(_set_ident)
         5108    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:191(get_statistique)
         4261    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:122(get_objet_carte)
          853    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:311(_acquire_restore)
          427    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:261(set_fps)
         2014    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
          426    0.000    0.000    0.015    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:20(end_connection)
         1315    0.000    0.000    0.000    0.000 {built-in method builtins.len}
          851    0.000    0.000    0.000    0.000 {method 'discard' of 'set' objects}
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:173(set_achivement)
           13    0.000    0.000    0.000    0.000 {built-in method _io.open}
           13    0.000    0.000    0.000    0.000 {built-in method nt._path_exists}
         2130    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
          427    0.000    0.000    0.014    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:496(_real_close)
         1705    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:377(__init__)
         2557    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:18(get_identifiant_unique)
          516    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:30(__init__)
          425    0.000    0.000    0.000    0.000 {method 'index' of 'list' objects}
         1705    0.000    0.000    0.000    0.000 {method 'locked' of '_thread.lock' objects}
           12    0.000    0.000    0.000    0.000 {built-in method _pickle.load}
          853    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1040(_set_native_id)
          853    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:308(_release_save)
          853    0.000    0.000    0.000    0.000 {method 'append' of 'collections.deque' objects}
            1    0.000    0.000    0.002    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:226(get_statique_sprite_load)
          429    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
          985    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
            6    0.000    0.000    0.000    0.000 {built-in method nt.stat}
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:66(set_monstre)
            1    0.000    0.000    0.007    0.007 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:131(get_carte_image)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:63(set_ressource)
          853    0.000    0.000    0.000    0.000 {method 'remove' of 'collections.deque' objects}
         1277    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:364(get_vie)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:610(gestion_evenement_temporel)
          516    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:9(__init__)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:346(initsysfonts)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:48(set_sort)
          852    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:352(set_vie)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:223(set_curseur)
          853    0.000    0.000    0.000    0.000 {built-in method _thread.get_native_id}
         1278    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:102(get_monstre)
          851    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:367(get_vie_max)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:158(get_affiche)
          427    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:175(set_fps)
          427    0.000    0.000    0.000    0.000 {method 'get_fps' of 'pygame.time.Clock' objects}
          851    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:373(get_mana_max)
          852    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:127(get_player)
          852    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:130(get_ressources)
          853    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:601(is_set)
            6    0.000    0.000    0.000    0.000 {method 'strftime' of 'datetime.date' objects}
          852    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:200(get_time_recolte)
          851    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:370(get_mana)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:148(get_list_ressources)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:124(get_entrer_carte)
            2    0.000    0.000    0.000    0.000 {built-in method _io.open_code}
          432    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:250(get_carte)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:346(set_mana)
           12    0.000    0.000    0.000    0.000 {method 'close' of '_io.BufferedReader' objects}
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:235(set_current_sprite)
          534    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:112(__init__)
           10    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:96(_path_join)
            2    0.000    0.000    0.000    0.000 {method 'read' of '_io.BufferedReader' objects}
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:111(get_entrer_carte_inside)
            2    0.000    0.000    0.000    0.000 {built-in method marshal.loads}
            1    0.000    0.000    0.003    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:17(__init__)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:11(__init__)
          426    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:60(get_sort)
            1    0.000    0.000    0.000    0.000 {method 'read' of '_io.TextIOWrapper' objects}
            1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:291(randrange)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1240(_find_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1590(find_spec)
            1    0.000    0.000    0.000    0.000 {method 'close' of '_io.TextIOWrapper' objects}
            6    0.000    0.000    0.000    0.000 {built-in method now}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:262(get_list_pnj)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1062(get_code)
            1    0.000    0.000    0.000    0.000 {built-in method builtins.__build_class__}
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:242(_randbelow_with_getrandbits)
          2/1    0.000    0.000    0.001    0.001 <frozen importlib._bootstrap>:1349(_find_and_load)
            2    0.000    0.000    0.000    0.000 {method '__exit__' of '_io._IOBase' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:258(get_image)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:304(acquire)
          2/1    0.000    0.000    0.001    0.001 <frozen importlib._bootstrap>:1304(_find_and_load_unlocked)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:234(get_list_commerce)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:426(_get_module_lock)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:332(randint)
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:482(cache_from_source)
            2    0.000    0.000    0.000    0.000 <frozen ntpath>:564(normpath)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:175(get_list_batiment)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:7(__init__)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\utilitaire.py:5(get_ressource)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1183(get_data)
          2/1    0.000    0.000    0.001    0.001 <frozen importlib._bootstrap>:911(_load_unlocked)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\achivement.py:1(<module>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1488(_get_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:733(_init_module_attrs)
           54    0.000    0.000    0.000    0.000 {built-in method _operator.index}
            6    0.000    0.000    0.004    0.001 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:181(get_reload)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:806(module_from_spec)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:289(get_list_meuble)
            6    0.000    0.000    0.000    0.000 {built-in method builtins.round}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:802(spec_from_file_location)
           42    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
          2/1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:989(exec_module)
           28    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:132(_path_split)
            2    0.000    0.000    0.000    0.000 {built-in method nt._getfullpathname}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:124(setdefault)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:232(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1585(_get_spec)
           22    0.000    0.000    0.000    0.000 {method 'getrandbits' of '_random.Random' objects}
           34    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:55(set_envoie_without_responce)
          5/2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:480(_call_with_frames_removed)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:751(_compile_bytecode)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:416(__enter__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:611(_get_cached)
            6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:84(_unpack_uint32)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:74(__new__)
            2    0.000    0.000    0.000    0.000 <frozen ntpath>:596(abspath)
            4    0.000    0.000    0.000    0.000 {built-in method builtins.max}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:699(_validate_timestamp_pyc)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:162(__enter__)
           12    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:134(<genexpr>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:172(_path_isabs)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:666(_classify_pyc)
            4    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:445(cb)
            2    0.000    0.000    0.000    0.000 {built-in method _imp.is_builtin}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:372(release)
            6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:140(_path_stat)
           18    0.000    0.000    0.000    0.000 {method 'bit_length' of 'int' objects}
           12    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
          2/1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:16(run)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:82(remove)
            2    0.000    0.000    0.000    0.000 {built-in method nt._path_normpath}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1390(_handle_fromlist)
           12    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:491(_verbose_message)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:643(_check_name_wrapper)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\encodings\cp1252.py:22(decode)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\utilitaire.py:12(get_real_position)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1517(find_spec)
           12    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:632(cached)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:79(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:159(_path_isfile)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:420(__exit__)
           12    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
            8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:173(__exit__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:67(_relax_case)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:48(_new_module)
            1    0.000    0.000    0.000    0.000 {built-in method _codecs.charmap_decode}
            8    0.000    0.000    0.000    0.000 {built-in method nt.fspath}
            1    0.000    0.000    0.000    0.000 {built-in method builtins.__import__}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:982(find_spec)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\_distutils_hack\__init__.py:82(find_spec)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:642(reset_player_position)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1202(path_stats)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1466(_path_importer_cache)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1128(find_spec)
            8    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1226(__exit__)
            2    0.000    0.000    0.000    0.000 {built-in method _imp.find_frozen}
            8    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1222(__enter__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:150(_path_is_mode_type)
            2    0.000    0.000    0.000    0.000 {built-in method nt._path_splitroot}
           12    0.000    0.000    0.000    0.000 {built-in method _imp.release_lock}
           12    0.000    0.000    0.000    0.000 {built-in method _imp.acquire_lock}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:52(end_connection)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:185(_path_abspath)
            6    0.000    0.000    0.000    0.000 {built-in method from_bytes}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\achivement.py:7(Achivement)
            2    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
            2    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x00007FFA6D1298B0}
            2    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:142(get_sol)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:645(parent)
            2    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:253(set_position)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:599(__init__)
            2    0.000    0.000    0.000    0.000 {built-in method _weakref._remove_dead_weakref}
            2    0.000    0.000    0.000    0.000 {built-in method _imp._fix_co_filename}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\constante_achivement.py:1(<module>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:412(__init__)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:145(get_meuble)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:133(get_batiments)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:136(get_pnj)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:241(get_x)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:244(get_y)
            1    0.000    0.000    0.000    0.000 <frozen codecs>:260(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:158(__init__)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:114(set_entrer_carte_inside)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:139(get_commerce)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:653(has_location)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1153(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:986(create_module)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1178(get_filename)
    



    Lorsque je déplace mon personnage je tombe a plus ou moins 50 FPS:

             986986 function calls (985622 primitive calls) in 4.156 seconds
    
       Ordered by: internal time
    
       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
         1714    1.373    0.001    1.373    0.001 {method 'blit' of 'pygame.surface.Surface' objects}
          242    1.132    0.005    1.166    0.005 {method 'recv' of '_socket.socket' objects}
         1694    0.980    0.001    1.034    0.001 {method 'blits' of 'pygame.surface.Surface' objects}
          983    0.156    0.000    0.156    0.000 {method 'render' of 'pygame.font.Font' objects}
          436    0.043    0.000    0.127    0.000 {method 'connect' of '_socket.socket' objects}
          242    0.034    0.000    4.161    0.017 {built-in method pygame.display.update}
       130680    0.032    0.000    0.054    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:568(<genexpr>)
    4068/2712    0.031    0.000    0.675    0.000 {method 'acquire' of '_thread.lock' objects}
          698    0.031    0.000    0.058    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:1670(spritecollide)
       325051    0.024    0.000    0.024    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:127(rect)
          484    0.018    0.000    1.927    0.004 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\thread_affiche_info.py:14(run)
         9197    0.018    0.000    0.028    0.000 {built-in method pygame.transform.scale}
          242    0.018    0.000    0.018    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:375(font_constructor)
          678    0.017    0.000    0.017    0.000 {built-in method _thread.start_new_thread}
       189816    0.014    0.000    0.014    0.000 {method 'colliderect' of 'pygame.rect.Rect' objects}
          242    0.014    0.000    0.014    0.000 {built-in method _pickle.loads}
          194    0.012    0.000    0.023    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:495(move_direction)
          242    0.012    0.000    0.661    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:60(get_affiche)
          436    0.012    0.000    0.415    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:221(__init__)
       134537    0.010    0.000    0.010    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:119(image)
          243    0.009    0.000    0.009    0.000 {built-in method pygame.event.get}
          436    0.009    0.000    0.009    0.000 {function socket.close at 0x000001F9B79BB740}
         4356    0.008    0.000    0.016    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:63(get_image)
          194    0.008    0.000    0.622    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:7(__init__)
          436    0.007    0.000    0.028    0.000 {method 'sendall' of '_socket.socket' objects}
         1210    0.007    0.000    0.007    0.000 {method 'update' of 'dict' objects}
            1    0.005    0.005    0.005    0.005 {built-in method pygame.image.load}
          242    0.004    0.000    2.040    0.008 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:40(set_envoi_donnee)
          678    0.004    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:277(__init__)
         6083    0.004    0.000    0.007    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:445(add)
          678    0.004    0.000    0.755    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:637(wait)
          242    0.004    0.000    0.308    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:430(SysFont)
         4356    0.003    0.000    0.011    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:70(update)
          678    0.003    0.000    0.682    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:323(wait)
         1908    0.003    0.000    0.003    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:381(sprites)
          678    0.003    0.000    0.014    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:882(__init__)
          194    0.003    0.000    0.064    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:542(search_collision_deplacement)
          242    0.003    0.000    0.003    0.000 {built-in method pygame.mouse.set_visible}
          872    0.003    0.000    0.003    0.000 {method 'setsockopt' of '_socket.socket' objects}
         1210    0.003    0.000    0.266    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:557(draw)
          678    0.003    0.000    0.007    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1043(_set_tstate_lock)
         1358    0.002    0.000    0.002    0.000 {built-in method _thread.allocate_lock}
          678    0.002    0.000    1.975    0.003 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1056(_bootstrap_inner)
          194    0.002    0.000    0.003    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:275(get_marche_image)
          678    0.002    0.000    0.771    0.001 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:973(start)
         1356    0.002    0.000    0.002    0.000 {method 'release' of '_thread.lock' objects}
          678    0.002    0.000    1.996    0.003 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1016(_bootstrap)
          242    0.002    0.000    0.659    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:279(get_affiche_carte)
        10199    0.002    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:123(image)
          436    0.002    0.000    0.002    0.000 {built-in method _pickle.dumps}
         4374    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:29(get_on_hitbox)
          678    0.001    0.000    0.001    0.000 {built-in method _thread._set_sentinel}
          678    0.001    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:855(_maintain_shutdown_locks)
         8954    0.001    0.000    0.001    0.000 {built-in method pygame.mouse.get_pos}
         5114    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:171(add_internal)
          678    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1106(_delete)
          242    0.001    0.000    0.819    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:11(connection)
          678    0.001    0.000    0.006    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:616(set)
         1452    0.001    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:47(<genexpr>)
          242    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:73(set_players)
            1    0.001    0.001    0.002    0.002 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:202(get_list_sol)
          678    0.001    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:394(notify)
          678    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:837(_newname)
          242    0.001    0.000    2.082    0.009 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:184(get_all_info_carte)
          912    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:543(<genexpr>)
          969    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:652(__init__)
          678    0.001    0.000    0.007    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:588(__init__)
            1    0.001    0.001    0.001    0.001 {method 'convert' of 'pygame.surface.Surface' objects}
         5309    0.001    0.000    0.001    0.000 {method 'get_rect' of 'pygame.surface.Surface' objects}
         5114    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:394(add_internal)
         3848    0.001    0.000    0.001    0.000 {built-in method builtins.hasattr}
          678    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\_weakrefset.py:85(add)
         1356    0.001    0.000    0.001    0.000 {method '__enter__' of '_thread.lock' objects}
         1356    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:302(__exit__)
          436    0.001    0.000    0.012    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:496(_real_close)
         3146    0.001    0.000    0.001    0.000 {method 'split' of 'str' objects}
         5850    0.001    0.000    0.001    0.000 {built-in method builtins.isinstance}
          484    0.001    0.000    0.011    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\thread_affiche_info.py:5(__init__)
          242    0.001    0.000    1.167    0.005 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:23(receive_complete_response)
          678    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\_weakrefset.py:39(_remove)
         5114    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:418(has_internal)
         2038    0.001    0.000    0.001    0.000 {built-in method _thread.get_ident}
         4374    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:41(get_maturite)
          242    0.001    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:396(_load_single_font)
         5601    0.001    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:131(rect)
          242    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:268(update)
          168    0.001    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\utilitaire.py:48(get_relative_position)
          678    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1354(_make_invoke_excepthook)
          678    0.000    0.000    0.004    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:424(notify_all)
         1356    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1234(daemon)
          256    0.000    0.000    0.002    0.000 {method 'join' of 'str' objects}
          738    0.000    0.000    0.000    0.000 {method 'get' of 'dict' objects}
          194    0.000    0.000    0.007    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:55(set_envoie_without_responce)
          678    0.000    0.000    0.000    0.000 {method 'difference_update' of 'set' objects}
         1356    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
          242    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:460(gestion_coordonnee_changement_map)
         2038    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.RLock' objects}
          678    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1483(current_thread)
         1356    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:299(__enter__)
          516    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:68(get_image)
          983    0.000    0.000    0.000    0.000 {method 'set_alpha' of 'pygame.surface.Surface' objects}
         2034    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.lock' objects}
          242    0.000    0.000    0.003    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:44(_simplename)
         1356    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:314(_is_owned)
          436    0.000    0.000    0.012    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\socket.py:500(close)
          678    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1036(_set_ident)
          194    0.000    0.000    0.024    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:526(gestion_deplacement_joueur)
          698    0.000    0.000    0.002    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:439(__iter__)
         1188    0.000    0.000    0.000    0.000 {built-in method time.time}
          242    0.000    0.000    0.006    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:203(get_affiche)
          194    0.000    0.000    0.007    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:16(run)
          678    0.000    0.000    0.001    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:311(_acquire_restore)
          242    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:117(set_player)
           13    0.000    0.000    0.000    0.000 {built-in method _io.open}
         1210    0.000    0.000    0.000    0.000 {method 'isalnum' of 'str' objects}
          242    0.000    0.000    0.024    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:610(gestion_evenement_temporel)
          243    0.000    0.000    0.000    0.000 {method 'tick' of 'pygame.time.Clock' objects}
           13    0.000    0.000    0.000    0.000 {built-in method nt._path_exists}
         4377    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:175(get_x_position_carte)
          242    0.000    0.000    0.000    0.000 {method 'endswith' of 'bytes' objects}
          194    0.000    0.000    0.010    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:451(update_player_position)
         4377    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:211(get_y_position_carte)
         3098    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:191(get_statistique)
          678    0.000    0.000    0.000    0.000 {method 'discard' of 'set' objects}
          243    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:261(set_fps)
          194    0.000    0.000    0.002    0.000 {built-in method builtins.any}
          956    0.000    0.000    0.000    0.000 {built-in method builtins.len}
         2423    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:122(get_objet_carte)
          199    0.000    0.000    0.000    0.000 {built-in method builtins.round}
          516    0.000    0.000    0.001    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:30(__init__)
         1577    0.000    0.000    0.000    0.000 {method 'append' of 'list' objects}
         3110    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:49(get_type)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:173(set_achivement)
          678    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:1040(_set_native_id)
         1355    0.000    0.000    0.000    0.000 {method 'locked' of '_thread.lock' objects}
            1    0.000    0.000    0.007    0.007 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:131(get_carte_image)
           12    0.000    0.000    0.000    0.000 {built-in method _pickle.load}
          678    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:308(_release_save)
         1210    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
          242    0.000    0.000    0.008    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client.py:20(end_connection)
         1646    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:18(get_identifiant_unique)
          516    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:9(__init__)
            6    0.000    0.000    0.000    0.000 {built-in method nt.stat}
          194    0.000    0.000    0.005    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\network\client_thread.py:52(end_connection)
          969    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:377(__init__)
          678    0.000    0.000    0.000    0.000 {method 'append' of 'collections.deque' objects}
          678    0.000    0.000    0.000    0.000 {method 'remove' of 'collections.deque' objects}
          698    0.000    0.000    0.000    0.000 {built-in method builtins.iter}
            1    0.000    0.000    0.001    0.001 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:226(get_statique_sprite_load)
          388    0.000    0.000    0.000    0.000 {built-in method builtins.abs}
          194    0.000    0.000    0.000    0.000 {built-in method builtins.min}
          678    0.000    0.000    0.000    0.000 {built-in method _thread.get_native_id}
         1316    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\decoration.py:46(get_type_sol)
          194    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:310(set_top)
          241    0.000    0.000    0.000    0.000 {method 'index' of 'list' objects}
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:63(set_ressource)
          726    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:364(get_vie)
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:352(set_vie)
          945    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:241(get_x)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:66(set_monstre)
          245    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
          946    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:244(get_y)
          678    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\threading.py:601(is_set)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:48(set_sort)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sysfont.py:346(initsysfonts)
            5    0.000    0.000    0.000    0.000 {method 'strftime' of 'datetime.date' objects}
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:223(set_curseur)
          727    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:102(get_monstre)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:158(get_affiche)
          243    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:175(set_fps)
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:367(get_vie_max)
          485    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:130(get_ressources)
          441    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:250(get_carte)
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:373(get_mana_max)
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:127(get_player)
           12    0.000    0.000    0.000    0.000 {method 'close' of '_io.BufferedReader' objects}
          243    0.000    0.000    0.000    0.000 {method 'get_fps' of 'pygame.time.Clock' objects}
          362    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:214(get_statique_sprite)
            2    0.000    0.000    0.000    0.000 {built-in method _io.open_code}
          534    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\pygame\sprite.py:112(__init__)
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:200(get_time_recolte)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:148(get_list_ressources)
            2    0.000    0.000    0.000    0.000 {method 'read' of '_io.BufferedReader' objects}
          484    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:370(get_mana)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:124(get_entrer_carte)
           10    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:96(_path_join)
            1    0.000    0.000    0.000    0.000 {method 'read' of '_io.TextIOWrapper' objects}
          194    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:349(get_vitesse_deplacement)
            2    0.000    0.000    0.000    0.000 {built-in method marshal.loads}
            1    0.000    0.000    0.003    0.003 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:17(__init__)
            1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:346(set_mana)
          168    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:128(get_sprite_ressources)
          168    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:217(get_anime_sprite)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:111(get_entrer_carte_inside)
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:235(set_current_sprite)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\ressources.py:11(__init__)
            1    0.000    0.000    0.000    0.000 {method 'close' of '_io.TextIOWrapper' objects}
          242    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:60(get_sort)
          194    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:21(get_position)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1590(find_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1062(get_code)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1240(_find_spec)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:262(get_list_pnj)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:291(randrange)
            1    0.000    0.000    0.000    0.000 {built-in method builtins.__build_class__}
          2/1    0.000    0.000    0.001    0.001 <frozen importlib._bootstrap>:1349(_find_and_load)
            5    0.000    0.000    0.000    0.000 {built-in method now}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:258(get_image)
            2    0.000    0.000    0.000    0.000 {method '__exit__' of '_io._IOBase' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:304(acquire)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:234(get_list_commerce)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:175(get_list_batiment)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\utilitaire.py:5(get_ressource)
          2/1    0.000    0.000    0.001    0.001 <frozen importlib._bootstrap>:1304(_find_and_load_unlocked)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:242(_randbelow_with_getrandbits)
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:482(cache_from_source)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:426(_get_module_lock)
            2    0.000    0.000    0.000    0.000 <frozen ntpath>:564(normpath)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:733(_init_module_attrs)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\utilitaire.py:12(get_real_position)
           18    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\random.py:332(randint)
          2/1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:911(_load_unlocked)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1488(_get_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1183(get_data)
            2    0.000    0.000    0.000    0.000 {built-in method nt._getfullpathname}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:802(spec_from_file_location)
           42    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:289(get_list_meuble)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\achivement.py:1(<module>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1585(_get_spec)
          2/1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:989(exec_module)
           34    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
            5    0.000    0.000    0.004    0.001 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\information.py:181(get_reload)
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:132(_path_split)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:806(module_from_spec)
           28    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:232(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:124(setdefault)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:751(_compile_bytecode)
            6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:84(_unpack_uint32)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:611(_get_cached)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:74(__new__)
            2    0.000    0.000    0.000    0.000 <frozen ntpath>:596(abspath)
            4    0.000    0.000    0.000    0.000 {built-in method builtins.max}
            2    0.000    0.000    0.000    0.000 {built-in method _imp.is_builtin}
           54    0.000    0.000    0.000    0.000 {built-in method _operator.index}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:416(__enter__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:172(_path_isabs)
          5/2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:480(_call_with_frames_removed)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:162(__enter__)
            4    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:666(_classify_pyc)
            6    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:140(_path_stat)
           12    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:134(<genexpr>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:372(release)
           20    0.000    0.000    0.000    0.000 {method 'getrandbits' of '_random.Random' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\encodings\cp1252.py:22(decode)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:82(remove)
           12    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
          2/1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:79(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:643(_check_name_wrapper)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1390(_handle_fromlist)
           12    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:492(gestion_click_gauche_deplacement)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1517(find_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:67(_relax_case)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\game\engine.py:642(reset_player_position)
            4    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:632(cached)
            1    0.000    0.000    0.000    0.000 {built-in method _codecs.charmap_decode}
            2    0.000    0.000    0.000    0.000 {built-in method nt._path_normpath}
           12    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
            8    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
           12    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:491(_verbose_message)
           18    0.000    0.000    0.000    0.000 {method 'bit_length' of 'int' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1202(path_stats)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:699(_validate_timestamp_pyc)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:48(_new_module)
            8    0.000    0.000    0.000    0.000 {built-in method nt.fspath}
            6    0.000    0.000    0.000    0.000 {built-in method from_bytes}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:159(_path_isfile)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:150(_path_is_mode_type)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:982(find_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:420(__exit__)
            8    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1226(__exit__)
           12    0.000    0.000    0.000    0.000 {built-in method _imp.acquire_lock}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1466(_path_importer_cache)
            2    0.000    0.000    0.000    0.000 C:\Users\antov\AppData\Local\Programs\Python\Python312\Lib\site-packages\_distutils_hack\__init__.py:82(find_spec)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:185(_path_abspath)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1128(find_spec)
            2    0.000    0.000    0.000    0.000 {built-in method nt._path_splitroot}
            1    0.000    0.000    0.000    0.000 {built-in method builtins.__import__}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:173(__exit__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:445(cb)
           12    0.000    0.000    0.000    0.000 {built-in method _imp.release_lock}
            2    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
            2    0.000    0.000    0.000    0.000 {built-in method _imp.find_frozen}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\achivement.py:7(Achivement)
            8    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1222(__enter__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:645(parent)
            2    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x00007FFA6D1298B0}
            2    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\personnage.py:253(set_position)
            2    0.000    0.000    0.000    0.000 {method 'remove' of 'list' objects}
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:599(__init__)
            2    0.000    0.000    0.000    0.000 {built-in method _weakref._remove_dead_weakref}
            2    0.000    0.000    0.000    0.000 {built-in method _imp._fix_co_filename}
            1    0.000    0.000    0.000    0.000 <frozen codecs>:260(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:412(__init__)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:113(get_x_carte)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:136(get_pnj)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\utils\constante_achivement.py:1(<module>)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:653(has_location)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1178(get_filename)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:158(__init__)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\affichage.py:116(get_y_carte)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:133(get_batiments)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:139(get_commerce)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:145(get_meuble)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:1153(__init__)
            2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap_external>:986(create_module)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:114(set_entrer_carte_inside)
            1    0.000    0.000    0.000    0.000 C:\Users\antov\Documents\GitHub\CultivationGame\pythonProject\classes\carte.py:142(get_sol)
    


    En regardant le cProfile en long nous avons les socket et l'update mais le temps est plus ou moins le même d'un côté ou de l'autre.

    Avez-vous une idée de ce qui peux ralentir comme ça le jeu ?

    Merci d'avance :) 



    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2024 à 20:31:44

      En général des display.update ou display.flip qui ne servent à rien.

      C'est possible d'avoir le code qui gère le rendu ?

      -
      Edité par josmiley 27 mai 2024 à 20:36:41

      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        27 mai 2024 à 22:08:27

        Je peux le mettre demain :) 

        Je pense qu'une partie du problème venait de la j'ai retirer le display.update général pour le faire partie par partie et le rendu est beaucoup mieux, maintenant je suis a 100 fps et 60-70 lors que je déplace le personnage mais maintenant je penses que c'est les appels socket qui pose problème dans le cprofile plus haut on voit déjà qu'il prenne un peu de temps lorsque je déplace le personnage, après je ne sais pas si c'est une optimisation qui n'est pas présente ou juste trop s'appelle sachant que j'appelle la socket quasiment à chaque pixel ou le perso ce déplace je mettrais le code demain également merci pour ton retour :) 

        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2024 à 0:40:53

          Salut,

          Les sockets c'est pour le jeu online ?

          Tu as les même pertes en offline donc sans socket ?

          • Partager sur Facebook
          • Partager sur Twitter
            28 mai 2024 à 11:38:56

            Oui les sockets sont pour un jeu online, bah là où j'en suis je peux pas me permettre de les enlever et que ça fonctionne encore :(

            Mais maintenant dans les cProfile c'est la dernier chose qui prends beaucoup de temps par appelle, après en regardant un peu sur le net j'ai vu l'option TCP_NODELAY pour qu'il envoie les petits paquets sans attendre, et faut que je vérifie ce soir si je l'utiliser bien peu être est ce qui pose des problèmes 

            • Partager sur Facebook
            • Partager sur Twitter
              30 mai 2024 à 0:35:10

              Salut,

              Depuis 2 jours, toujours pas de code. C'est quoi tes faits d'armes. C'est bizarre que tu postes après autant de codage.  Vous êtes combien sur le projet ? Coder est difficile et tu t'es mis des bâtons dans les roues on dirait. Normalement, et encore plus sur un projet lourd, il vaut mieux faire de la programmation modulaire. Et dans ce cas, il t'aurait été facile de retirer le bloc réseau pour tester ton jeu offline

              • Partager sur Facebook
              • Partager sur Twitter
                30 mai 2024 à 7:48:06

                La réponse est dans la question (dans sa première réponse ), il met à jour dès que le moindre pixel change ... Forcément.
                • Partager sur Facebook
                • Partager sur Twitter

                Python c'est bon, mangez-en. 

                  30 mai 2024 à 13:09:00

                  Bonjour,

                  J'ai trouvé la solution a tous les problèmes, les appels réseau en faisait bien partie mais ce n'est pas le fait de le faire a chaque pixel mais surtout le fait que plusieurs appels arrive en même temps.

                  Quand je disais qu'il était difficile de retirer la partie réseau n'étais pas du au fait que je dois juste empêcher l'appelle du réseau mais surtout du au fait que le système de connexion est déjà en place et qu'il est compliqué de faire sans après certe j'aurais pu faire sans pour l'exemple.

                  En tous cas merci pour vos réponses bon courage et bonne fin de journée 

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pygame perte de FPS

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown