Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pygame, haute résolution => slow game

    25 avril 2016 à 12:35:00

    Bonjour,

    J'ai un gros problème de FPS lorsque je lance mon jeu avec une plus grande résolution, de base je lançais mon jeu 800 par 400 simplement pour tester se que je

    faisais, puis j'ai voulu tester en 1920, 1080 ( la taille de mon écran), et je remarque que la fenêtre se lance en ramant, et et que mon jeu rame, lorsque que je déplace

    mon personnage certains sprites ne sont pas affichés, lorsque je lance un sort de temps en temps l'image disparaît puis réapparaît un peu plus loin, enfin bref ça bug !

    j'utilise les dirty_rect au niveau de l'affichage, je pensais que cela venait du faîtes que je test les collisions à chaque tick, mais même en enlevant cette ligne de code,

    ça ne change rien.

    Je ne sais pas si ça a un rapport mais lorsque je suis en full screen sur youtube la vidéo ram également, j'ai résolu le problème en ne mettant pas la vidéo en

    full screen :-D. J'ai checké ma mémoire vive, si ubuntu détecter bien mes 8 go, lorsque j'ai simplement pycharm d'ouvert je suis à 35% d'utiliser et lorsque je lance

    mon jeu je passe à environ 40%, donc ça ne vient pas de la mémoire? Peut-être du CPU? J'en ai aucune idée. je vous donne mon main si ça peut vous aidez à

    m'aider :)

    group_spells = pg.sprite.Group()
    index = 0
    x = 0
    y = 0
    list_sprite = [player]
    
    while game:
    
        event = pg.event.poll()
    
        if event.type == pg.QUIT:
    
            game = False
    
        if event.type == pg.KEYDOWN:
    
            if event.key == pg.K_DOWN:
    
                index = 0
                player.move(y=5)
                y = 5  # Used for the spells'move
                x = 0
    
            elif event.key == pg.K_UP:
    
                index = 1
                player.move(y=-5)
                y = -5
                x = 0
    
            elif event.key == pg.K_RIGHT:
    
                index = 2
                player.move(x=5)
                x = 5
                y = 0
    
            elif event.key == pg.K_LEFT:
    
                index = 3
                player.move(x=-5)
                x = -5
                y = 0
    
            elif event.key == pg.K_a:
    
                newspell = player.cast_spell("BIGPROJECTRPG/image/Fireball.png", 16, 16, 6, 16, x, y, "Fireball", 30, player
                                             )
    
                if ac.Spell.time_to_cast:
    
                    ac.Spell.spell_time["Fireball"] = pg.time.get_ticks()
                    list_sprite.append(newspell)
    
                player.index = player.nb_sprite - 1
    
        else:
    
            player.index = player.nb_sprite - 1
    
        list_sprite = fc.sprite_collision(list_sprite, screen_m, (255, 255, 255))
        list_sprite = fc.check_alive(list_sprite, screen_m, (255, 255, 255))
        fc.update_sprite(list_sprite, screen_m, (255, 255, 255), index)
    
        clock.tick(40)

    Faut pas trop s'attarder sur le hardcoding pas très beau ou quoi que ce soit, pour l'instant je laisse comme ça ^^

    Merci de votre aide !

    • Partager sur Facebook
    • Partager sur Twitter

    Pygame, haute résolution => slow game

    × 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