Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2006, à 19:27

yaitanes

SDL et CPU

Bonjour a tous !
J'aimerai faire un rpg en C + SDL et pour l'instant, j'ai juste mon bonhomme qui se ballade sur une map toute verte big_smile (j'ai commencé aujourd'hui wink)
J'ai fait 12*12 cases de 34 px, et lorsque qu'on produit un evenement, une boucle blitte les 144 cases d'une image d'herbe (+nouvelle position du joueur + mise jour de l'ecran).
Comme j'ai ajouté au tableau de bord le moniteur de frequence du cpu, je constate que :
  -lorsque la frequence est de 600 MHz, le personnage va pas vite du tout
  -apres lui avoir fait quelques cases, la frequence monte au maximum (1,60 GHz) et le personnage va plus vite...

Est-ce normal? Avez vous des astuces pour faire un truc plus propre?

PS : le blit dans la boucle du wait event :

for (i=0; i<NB_BLOCS_HAUTEUR; i++)
    {
        for (j=0; j<NB_BLOCS_LARGEUR; j++)
        {
            posDecor.x = j*TAILLE_BLOC;
            posDecor.y = i*TAILLE_BLOC;
            decor = IMG_Load("herbe.gif");
            SDL_BlitSurface(decor, NULL, ecran, &posDecor);
            }
    }
    SDL_BlitSurface(persoActuel, NULL, ecran, &posPerso);
    SDL_Flip(ecran);

Hors ligne

#2 Le 28/10/2006, à 15:03

guyver2

Re : SDL et CPU

essaye de ne mettre a jour que les case concernées par le mouvement du personage.

tu 'blit' la case ou il était avec un carré d'herbe et celle ou il est maintenant avec le perso.

-> 2 blit contre 144, le gain est pas négligeable.

ensuite tu flip l'écran comme tu fais deja.

et essaye de charger une fois pour toute ton sprite d'herbe et de perso. Dans une fonction d'initialisation ou autre. la tu accede 144 fois a ton fichier par affichage, or les acces aux fichiers sont ce qu'il y a de plus gourmand en temps cpu

Dernière modification par guyver2 (Le 28/10/2006, à 15:05)


Croire est le meilleur moyen de ne jamais rien savoir
Mes jeux en C/C++

Hors ligne