Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Morgomir

Pages: [1]
1
Graphique / Re: Fonction draw
« le: Mai 22, 2017, 09:14:31 pm »
En effet j'affiche actuellement en dehors de mon écran (trop d'ailleurs), de plus, je compte réduire le nombre de blocs visibles par écran en fixant une taille (ce n'est pas normal qu'un joueur voit plus qu'un autre parce qu'il a une résolution plus élevée ! :p) Je vais me pencher sur ce nouvel outil qui a l'air très intéressant :)

Merci à vous deux pour vos conseils et votre précision !

ps: G. : j'utilisais déjà cette méthode pour afficher les blocs uniquement autour du joueur, étant donné qu'il peut se déplacer et que je ne veux pas afficher TOUTE la map, ça n'aurait aucun sens ^^. Mais merci quand même :p

2
Graphique / Fonction draw
« le: Mai 22, 2017, 05:03:34 pm »
Bonjour, :)

Je "travaille" actuellement sur un petit projet perso et je viens de me confronter à un problème assez chiant.
J'essaie de faire déplacer un personnage sur une map 2D vue de côté que je modélise par un tableau2D d'int. Chaque valeur est associée à un bloc différent (0->air ; 1->terre ; 2->pierre etc...)
J'ai donc initialisé un tableau avec les sprites de chaque bloc dans le bon ordre et l'ai nommé liste_bloc
Et j'affiche cette map en la parcourant avec une double boucle en déplaçant les blocs directement dans la liste_bloc et en les dessinant, ce qui donne ceci :

liste_bloc[carte[ i ][j]].setPosition(Vector2f(i*tailleBloc, j*tailleBloc));
window.draw(liste_bloc[carte[ i ][j]]);

Les deux boucles imbriquées font environ maximum 250 000 fois ces 2 commandes (480 blocs de largeur * 480 blocs de hauteur) (par frame, soit *60 par seconde)
Je me rend bien compte que c'est un total non négligeable d'instructions mais je ne peux pas faire autrement. Si ?
En soit je pourrais réduire le nombre d'appel de ces fonctions quasiment par 2 mais le fait est que si avec aucune fonctionnalité mon jeu rame ainsi j'ai peur de ce que ça va devenir .. (je réduirais surement de toute manière cet appel encore plus car la vision du jeu est trop large mais la question m'intéresse quand même)

Je voudrais donc savoir s'il est possible de faire autrement pour l'affichage d'une map 2D (plus optimisée) ou peut être est-ce la fonction draw qui n'est pas faite pour être appelé autant de fois ?
En tant que débutant dans le domaine je cherche conseil et j'espère que vous pourrez m'aider. Merci d'avance pour votre aide :)

ps: j'utilise Code::Blocks et C++, même si je ne pense pas qu'SFML fonctionne avec autre chose que C++, je préfère préciser :)

Pages: [1]