MacBook Pro Problème CPU usage 110% python pygame

loicmeunier

Membre enregistré
29 Novembre 2017
1
0
24
Bonjour à tous !

Voilà maintenant quelques mois que j'ai fait l'acquisition d'un Macbook Pro mid-2015 (actuellement sous High Sierra) et aucun problème n'est encore survenu... jusqu'à aujourd'hui !

Je suis des études orientées informatique et dans le cadre d'un cours je dois implémenter de simples jeux en python (version 3.6.3) en utilisant le module pygame (version 1.9.3).

Seulement voilà, alors que le jeu que j'implémente actuellement semble trivial (bien que très mal optimisé pour le moment), un petit tour du coté de l'utilisation de mon CPU lors de l'exécution de celui-ci m'indique qu'il utilise 110% de ce dernier... Mais fait encore plus étonnant, un ami ayant un macbook air plus ancien fait tourner ce même jeu et avec les mêmes versions python/pygame de manière beaucoup plus fluide (car lorsque je lance ce fameux jeu faut-il préciser qu'il s'en retrouve saccadé sur ma machine) et en utilisant seulement 30 à 50% de son CPU...

Je me suis pas mal documenté et j'ai essayé de le réinstaller de différentes façons... Rien n'y fait... Je pense activement au maraboutisme pour m'aider...

Merci d'avance !

PS : à toutes fins utiles voici le code actuel de mon jeu, où playercar.png est une image de 292KB.

Bloc de code:
import pygame
import random
import time

# --- constantes
GRIS = (127, 127, 127)
BLANC = (255, 255, 255)

FENETRE_LARGEUR = 600
FENETRE_HAUTEUR = 800

VOITURE_LARGEUR = 80
VOITURE_HAUTEUR = 162

POINTILLE_HAUTEUR = 100
POINTILLE_LARGEUR = 10
BAU_HAUTEUR = FENETRE_HAUTEUR
BAU_LARGEUR = 2*POINTILLE_LARGEUR
ESPACE = 50

VERS_DROITE = 1
VERS_GAUCHE = -1

voiture_position = [FENETRE_LARGEUR/2 - VOITURE_LARGEUR/2 , FENETRE_HAUTEUR * (3/4)]
VOITURE_DEPLACEMENT = 7

decalage = 0


# --- positions pointillés
pp1 = [FENETRE_LARGEUR // 4 - POINTILLE_LARGEUR // 2, ESPACE]
pp2 = [(2 * FENETRE_LARGEUR) // 4 - POINTILLE_LARGEUR // 2, ESPACE]
pp3 = [(3 * FENETRE_LARGEUR) // 4 - BAU_LARGEUR // 2, ESPACE]
# pp4 = [(4 * FENETRE_LARGEUR) // 5 - POINTILLE_LARGEUR // 2, ESPACE]

# --- dessiner + déplacer les pointillés
def Dessiner_pointilles(vitesse):

    global decalage
   
    for i in range(-1, 6):
        pygame.draw.rect(fenetre, BLANC, ((pp1[0], pp1[1] + decalage + i*(ESPACE + POINTILLE_HAUTEUR)),
        (POINTILLE_LARGEUR, POINTILLE_HAUTEUR)))
   
    for j in range(-1, 6):
        pygame.draw.rect(fenetre, BLANC, ((pp2[0], pp2[1] + decalage + j*(ESPACE + POINTILLE_HAUTEUR)),
        (POINTILLE_LARGEUR, POINTILLE_HAUTEUR)))

    for k in range(-1, 6):
        pygame.draw.rect(fenetre, BLANC, ((pp3[0], pp3[1] + decalage + k * BAU_HAUTEUR),
        (BAU_LARGEUR, BAU_HAUTEUR)))
#
#    for l in range(-1, 6):
#        pygame.draw.rect(fenetre, BLANC, ((pp4[0], pp4[1] + decalage + l*(ESPACE + POINTILLE_HAUTEUR)),
#        (POINTILLE_LARGEUR, POINTILLE_HAUTEUR)))
#
    decalage += vitesse
    if decalage >= 100:
        decalage = -50

# --- Déplacer notre voiture
def deplacer_voiture(sens):
    voiture_position[0] += VOITURE_DEPLACEMENT * sens

# --- initialisation pygame
pygame.display.init()
pygame.key.set_repeat(1, 1)

# --- dessiner la fenêtre + titre
fenetre_taille = (FENETRE_LARGEUR, FENETRE_HAUTEUR)
fenetre = pygame.display.set_mode(fenetre_taille)
pygame.display.set_caption('CARS')

# --- afficher l'image
image = pygame.image.load('images/playercar.png').convert_alpha(fenetre)
image = pygame.transform.scale(image, (VOITURE_LARGEUR, VOITURE_HAUTEUR))

fini = False
temps = pygame.time.Clock()

while not fini:
    vitesse = 6
    fenetre.fill(GRIS)
    #Entrées Joueur
    for evenement in pygame.event.get():
        if evenement.type == pygame.QUIT:
            fini = True
        elif evenement.type == pygame.KEYDOWN:
            if evenement.key == pygame.K_LEFT:
                deplacer_voiture(VERS_GAUCHE)
            elif evenement.key == pygame.K_RIGHT:
                deplacer_voiture(VERS_DROITE)

    if voiture_position[0] <= 0 :
        voiture_position[0] = 0
    elif voiture_position[0] + VOITURE_LARGEUR >= FENETRE_LARGEUR :
        voiture_position[0] = FENETRE_LARGEUR - VOITURE_LARGEUR

    if voiture_position[0] >= pp3[0] :
        vitesse = 4

    Dessiner_pointilles(vitesse)

    fenetre.blit(image, voiture_position)

    pygame.display.flip()

    temps.tick(60)

pygame.display.quit()
pygame.quit()
exit()
 
Bonjour,

Pourrais poster les configurations hardware complètes des 2 machines ?
(processur, vitesse, RAM, dd ou SSD, carte video, etc.)