Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Tutoriel] Tile Mapping

vos questions, propositions d'évolution

    8 février 2010 à 0:13:27

    @ProgZ : Tout est dans la fonction afficher :

    void Afficher(SDL_Surface* screen,SDL_Surface* tileset,char** table,int nombre_blocs_largeur,int nombre_blocs_hauteur)
    {
    	int i,j;
    	SDL_Rect Rect_dest;
    	SDL_Rect Rect_source;
    	Rect_source.w = LARGEUR_TILE;
    	Rect_source.h = HAUTEUR_TILE;
    	for(i=0;i<nombre_blocs_largeur;i++)
    	{
    		for(j=0;j<nombre_blocs_hauteur;j++)
    		{
    			Rect_dest.x = i*LARGEUR_TILE;
    			Rect_dest.y = j*HAUTEUR_TILE;
    			Rect_source.x = (table[j][i]-'0')*LARGEUR_TILE;
    			Rect_source.y = 0;
    			SDL_BlitSurface(tileset,&Rect_source,screen,&Rect_dest);
    		}
    	}
    	SDL_Flip(screen);
    }
    

    ou plus exactement là :

    SDL_BlitSurface(tileset, &Rect_source, screen, &Rect_dest);
    


    On blite les coordonnées "Rect_source" de l'image "tileset" aux coordonnées "Rect_dest" de l'écran ("screen").

    ------------------------------------------------------------------------------------------------------------------

    Mais pour moi d'un côté si c'est normal vu que j'affiche sans cesse une partie de 800x600 de la carte. C'est qu'à mon avis on ne dois pas faire comme ça. J'ai aussi pensé à n'afficher la carte que lorsque le perso se déplace mais il n'irait pas bien vite vu que on retournera pendant le déplacement à 4 FPS...

    C'est justement ça ma question : comment faire :-° ....
    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2010 à 0:25:01

      plus loins dans le tutoriel tu apprendra a ne calculer que les tile qui seront afficher sur ton écran (donc les tile qui dépasse seront ignorer en quelque sorte)
      Sa devrais déjà te faire gagniez quelque frame(se serait déjà bien plus fluide) , mais bon moi ma premier carte fessais quelque chose comme 150tile sur 50 ,et même la je nais aperçu aucun lag , je tu devrais peut-être poster ton soucis sur le forum avec ton code complet.
      • Partager sur Facebook
      • Partager sur Twitter
        8 février 2010 à 0:34:44

        C'est la méthode que j'utilise actuellement. Seulement, j'utilise une fenetre en 800x600 et non en 400x300 comme dans le tuto.
        Et c'est bien normal que tu n'a apercu aucun lag vu que tu n'affiche qu'une seule et unique fois alors que moi je l'affiche sans cesse.
        • Partager sur Facebook
        • Partager sur Twitter
          8 février 2010 à 0:37:57

          tu veu dire qeu tu affiche plusieurs fois ta map entière dans une seul boucle?
          Mais si tu parle d'afficher une fois a chaque boucle , c'est se que je fait.
          • Partager sur Facebook
          • Partager sur Twitter
            8 février 2010 à 0:42:30

            Code SFML :

            int jouer(sf::RenderWindow &ecran)
            {
            	cFPS fps;
            	Carte carte("res/level2.bmp", "res/tileset.bmp", "res/corresp.bmp", 16, 24, 800, 600);
            
            	ecran.Create(sf::VideoMode(carte.getLargeurFenetre(), carte.getHauteurFenetre()), "Mario Bros-like ^^");
            
            	bool continuer = true;
            	while (continuer)
            	{
            		sf::Event Event;
            		while (ecran.GetEvent(Event))
            		{
            			// On quitte si besoin
            			if ((Event.Type == sf::Event::Closed) || ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape)))
            				continuer = false;
            		}
            		// On efface l'écran
            		ecran.Clear(sf::Color(0, 0, 0));
            		carte.setScrooling(carte.getScroolX() + 12, carte.getScroolY() + 4);
            		carte.afficher(ecran);
            		fps.Draw(ecran);
            
            		// On affiche à l'écran
            		ecran.Display();
            	}
            	return false;
            }
            
            • Partager sur Facebook
            • Partager sur Twitter
              8 février 2010 à 2:28:54

              Je crois pas que sa soit bien de venir parler de tes problème sur se topic , je ne pense pas que il soit fait pour ça ^^.

              • Partager sur Facebook
              • Partager sur Twitter
                8 février 2010 à 10:12:02

                totorigolo > Meme si SDL est lente, il est anormal d'avoir un framerate aussi bas.
                Tu utilises SFML qui normalement est tres rapide, il faudrait voir si tu ne flip pas trop par exemple : une erreur classique est de flipper apres chaque blit.
                Il doit y avoir une coquille, a toi de la trouver :)

                ProgZ > Pour les propriétés des tiles, je les définis dans ce chapitre :
                http://www.siteduzero.com/tutoriel-3-1 [...] es-tiles.html

                Chaque tile a sa propriétés, et au niveau de la collision, on regarde si le tile est un mur ou du vide, et on gere la collision en conséquence !

                Merci pour vos encouragements ! ça va me motiver a continuer plus vite ! C'est vrai que j'ai peu de temps en ce moment, mais j'en trouverai ! :)
                • Partager sur Facebook
                • Partager sur Twitter

                Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                  8 février 2010 à 14:00:21

                  Merci à tous pour votre aide ! C'était "tout simplement" à cause du mode Debug !!! Je suis passé à 60 FPS avec le mode Release...

                  Et super tuto merci Fvirtman !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 mars 2010 à 20:28:04

                    tres bon tuto, mais j'ai juste une petite question , peut etre tres bête :) , je voulais juste savoir pourquoi ajouter (char) a

                    return (char)i;
                    


                    ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 mars 2010 à 20:37:34

                      Salut,

                      Ca sert à convertir i en un char. ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 mars 2010 à 19:57:37

                        Bonjour !
                        Tout d'abord, félicitations pour cet excellent tuto !
                        J'ai juste une question, pourriez vous m'éclairer ?
                        char** res;
                        

                        res = malloc(schema->w * sizeof(char*));
                        

                        res[i] = malloc(schema->h * sizeof(char));
                        

                        Voilà, serais t il possible que l'on m'explique pour quoi on passe par char**, puis char*, puis char ? Merci^^
                        PS : Si on me renvoie au cours sur les pointeurs, sachez que j'y suis déjà allé et que je n'ai pas compris quand même.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          22 mars 2010 à 20:29:18

                          Merci beaucoup ! C'est exactement ce qu'il me fallait :-)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 mars 2010 à 4:36:41

                            Très bon tuto même pour quelqu'un qui n'a jamais utilisé SDL.
                            Sinon cette phrase est lourde (chap :Présentation Générale)

                            Citation : Fvirtman

                            Ce tutoriel devrait grandir au fur et à mesure des versions. Voici ce qu'il pourrait enseigner au fur et à mesure des versions.

                            </span>
                            • Partager sur Facebook
                            • Partager sur Twitter
                              26 mars 2010 à 9:10:06

                              Actuellement, je n'ai pas encore eu le temps de trop continuer, beaucoup de boulot et de choses à faire, un vrai emploi du temps de ministre !
                              Mais bientot la suite !
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                26 mars 2010 à 18:13:01

                                Vivement la suite car je l'ai fait avec SFML mais pour les sauts je suis bloqué (sauf si le saut est direct... ^^).
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  28 mars 2010 à 7:29:52

                                  @Fvirtman: j'ai crée un petit editeur de niveau pour ton tuto :

                                  Image utilisateur (cliquer pour agrandir)
                                  il génére le tableau des nombres dans un fichier *.txt (ou autre).
                                  Si ça t'intéresse, envoie moi un mp et je te donnerai le programme (et les sources si tu veux(c'est du java))

                                  sinon voici un tilemap de mario:Image utilisateur
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    28 mars 2010 à 12:17:46

                                    Intéressant !

                                    Je pense que ce programme pourra intéresser des personnes ici ! Apres il ne reste plus qu'a faire une fonction ChargerMap qui reprend ton format et on peut l'intégrer directement dans le tuto.
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                      15 avril 2010 à 11:29:04

                                      Vu sur les commentaires du tuto, je réponds ici :

                                      Citation : une_vie_de_reve


                                      Je ne comprend pas très bien le principe ici du tableau : comment fonctionne-t-il et pourquoi passe-t-on d'un tableau à une entrée à un tableau à double entrée ? Est-il possible de créer un fichier dans lequel entrer les données du tableau et de lire la carte à partir de celui-ci ? J'ai déjà réalisé des petits programmes en utilisant cette méthode mais j'ai remarqué que je ne pouvais ouvrir que des fenêtres carrées. Apparement avec ta méthode on peut ouvrir des fenêtres rectangulaires mais je ne comprend pas comment tu as fais, peux-tu m'expliquer ?



                                      Le tableau a une entrée est un tableau de chaine, une chaine étant un tableau, on a bien un tableau a double entrée de char :)

                                      Oui, sinon, il est possible de passer par un fichier texte. Je pense qu'un jour je modifierai le premier chapitre, en rajoutant cette option. Actuellement, je propose la méthode "en dur dans le fichier C", puis directement la méthode par paint. Je mettrais une méthode par fichier texte externe.

                                      Si tu ne peux ouvrir que des fenetres carrées, et que le rectangulaire ne marche pas chez toi, ça veut tres certainement dire que tu t'es emmêlé entre les x et les y, et que donc ça ne marche que si x = y (donc carré).
                                      C'est une erreur classique.
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                        15 avril 2010 à 11:51:42

                                        Est-ce que cela veut dire que l'on peut mettre plusieurs caractères dans une même case d'un tableau ?? :o
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 avril 2010 à 12:09:49

                                          Non, ça ce n'est pas prévu (et pas conseillé)
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                          Anonyme
                                            15 avril 2010 à 12:33:38

                                            Salut.
                                            Je n'ai pas lu le tutoriel de fond en comble, il a l'air très intéressant, mais quelque chose me déçoit un peu : l'indentation de tes codes.
                                            Peu d'espaces, peu de sauts de lignes - provoque des gros pâtés assez rebondants à lire, des tabulations de 8 (?) espaces. De plus je ne suis pas fan des fonctions à >= 8 paramètres, mais cet avis n'engage que moi et ton organisation est surement meilleure que la mienne.
                                            Autre point : pourquoi les noms de fonctions sont en français ?

                                            Je sais que je m'attarde plus sur la forme que sur le fond, mais ça me semble être un point important à améliorer.

                                            Malgré tout, c'est du bon travail, félicitations ;)
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              15 avril 2010 à 13:23:01

                                              Citation : Monsieur_JaKy

                                              quelque chose me déçoit un peu : l'indentation de tes codes.
                                              Peu d'espaces, peu de sauts de lignes - provoque des gros pâtés assez rebondants à lire,



                                              Personnellement, je déteste les sauts de ligne en plein milieu de fonction.
                                              Pour moi, un saut de ligne au milieu d'une fonction, ça veut dire "la fonction fait 2 choses distinctes, mais j'avais pas envie d'en faire deux".
                                              Je préfère une fonction compacte (mais courte), sans exagérer bien sur (par plusieurs commandes sur la meme ligne) plutot qu'une fonction de 200 lignes avec des sauts de ligne a tout va.

                                              Pour moi, une fonction doit avoir une seule tâche, donc un seul "paragraphe", sinon je découpe.

                                              C'est pour cela que mes fonctions sont compactes, mais restent petites. Je comprends qu'on n'aie pas le meme point de vue.

                                              Tu me parles d'espaces, a quel endroit fais tu allusion a propos des espaces manquants ?

                                              Citation : Monsieur_JaKy


                                              des tabulations de 8 (?) espaces.



                                              En effet, certains alinéas sont peut etre un peu trop grands, j'ai copié collé ce code depuis visual C++ 2005 (qui pourtant ne fait pas des alinéas si grands), et ça s'est traduit comme ça. Peut être avais je mal indenté à la source.
                                              Je ferai attention la prochaine fois a cela. :)

                                              Citation : Monsieur_JaKy


                                              De plus je ne suis pas fan des fonctions à >= 8 paramètres, mais cet avis n'engage que moi et ton organisation est surement meilleure que la mienne.



                                              En effet, j'ai fait des fonctions avec beaucoup de paramètres et c'est en général à éviter. Je pense en particulier à la fonction "ChargerMap" qui s'étoffe sur les 3 premiers chapitres, en s'assouplissant au fur et à mesure, et donc en prenant davantage de paramètres.
                                              C'est à éviter car ça peut ralentir dans une zone critique. Cependant, cette fonction étant appelée qu'une fois, cela n'a aucune impacte. Mais peut être verrais je a factoriser un peu les paramètres à terme.

                                              Quoiqu'il en soit, personnellement, je n'aime pas trop remplir des structures pour les passer aux fonctions (comme SDL_Rect ou beaucoup de fonctions de l'API Windows), mais c'est personnel.

                                              Quant a mon organisation de code meilleure que la tienne, je dirais que pas forcément :) Chacun a sa façon de coder, et j'accepte qu'on me dise qu'on ferait autrement. Ce que je fais n'est pas parfait, et est critiquable !

                                              Citation : Monsieur_JaKy


                                              Autre point : pourquoi les noms de fonctions sont en français ?



                                              Euh... Parce que j'habite en France, que je parle mieux le français que l'anglais, et que le tuto est rédigé en Français par un français (moi) et pour des français (mes lecteurs)
                                              Il est vrai que ça fait "in" de mettre des noms de fonctions en anglais (je le fais pas mal pour mon boulot), mais pour un tuto comme celui ci, je me dis qu'un nom français explicite peut être très parlant !

                                              Merci pour ton post et ta franchise :) Je tiendrai compte de cela pour la suite !
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                                15 avril 2010 à 13:53:12

                                                L'intérêt principal de ton tuto n'est pas (que)dans les codes...

                                                La manière que tu as de présenter les concepts, trucs et astuces propres à la création de ce genre de jeux, permettent déjà à ton tuto de se poser en référence.
                                                Il y a 2 manières de le prendre
                                                • On prend les sources, et ça marche.
                                                • On comprend le concept, on fait ce qu'on souhaite avec.


                                                Pour ma part, les sources ne sont pas ce qui m'intéresse le plus, mais j'avoue que je suis bien fan de ce tuto. ;)
                                                Juste, vivement que tu aies :-° le temps de rédiger la suite, c'est un plaisir à lire. :)


                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Zeste de Savoir, le site qui en a dans le citron !
                                                  15 avril 2010 à 13:55:50

                                                  Merci !
                                                  C'est en effet comme ça que je veux le structure : problématique, solutions possibles (dont des "mauvaises"), une solution retenue, théorie dessus appuyée par des schémas, puis code pour illustrer.

                                                  J'ai déja bien entamé le chapitre suivant sur l'animation du perso, mais pas encore fini, et pour le moment hélas, très peu de temps dispo :(
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                                  Anonyme
                                                    15 avril 2010 à 15:07:39

                                                    Citation : Fvirtman

                                                    Personnellement, je déteste les sauts de ligne en plein milieu de fonction.
                                                    Pour moi, un saut de ligne au milieu d'une fonction, ça veut dire "la fonction fait 2 choses distinctes, mais j'avais pas envie d'en faire deux".


                                                    Personnellement, quand je vois ce code :
                                                    int AfficherMap(Map* m,SDL_Surface* screen)
                                                    {
                                                    	int i,j;
                                                    	SDL_Rect Rect_dest;
                                                    	int numero_tile;
                                                    	int minx,maxx,miny,maxy;
                                                    	minx = m->xscroll / m->LARGEUR_TILE;
                                                    	miny = m->yscroll / m->HAUTEUR_TILE;
                                                    	maxx = (m->xscroll + m->largeur_fenetre)/m->LARGEUR_TILE;
                                                    	maxy = (m->yscroll + m->hauteur_fenetre)/m->HAUTEUR_TILE;
                                                    	for(i=minx;i<=maxx;i++)
                                                    	{
                                                    		for(j=miny;j<=maxy;j++)
                                                    		{
                                                    			Rect_dest.x = i*m->LARGEUR_TILE - m->xscroll;
                                                    			Rect_dest.y = j*m->HAUTEUR_TILE - m->yscroll;
                                                    			numero_tile = m->schema[i][j];
                                                    			SDL_BlitSurface(m->tileset,&(m->props[numero_tile].R),screen,&Rect_dest);
                                                    		}
                                                    	}
                                                    	return 0;
                                                    }
                                                    


                                                    J'ai très envie de le modifier selon le shéma suivant :
                                                    - Déclaration de variable
                                                    - Saut de ligne
                                                    - Initialisation de variable
                                                    - Saut de ligne
                                                    - Traitement

                                                    Ce qui donne le code suivant
                                                    int AfficherMap(Map* m,SDL_Surface* screen)
                                                    {
                                                    	int i,j;
                                                    	SDL_Rect Rect_dest;
                                                    	int numero_tile;
                                                    	int minx,maxx,miny,maxy;
                                                    
                                                    	minx = m->xscroll / m->LARGEUR_TILE;
                                                    	miny = m->yscroll / m->HAUTEUR_TILE;
                                                    	maxx = (m->xscroll + m->largeur_fenetre)/m->LARGEUR_TILE;
                                                    	maxy = (m->yscroll + m->hauteur_fenetre)/m->HAUTEUR_TILE;
                                                    
                                                    	for(i=minx;i<=maxx;i++)
                                                    	{
                                                    		for(j=miny;j<=maxy;j++)
                                                    		{
                                                    			Rect_dest.x = i*m->LARGEUR_TILE - m->xscroll;
                                                    			Rect_dest.y = j*m->HAUTEUR_TILE - m->yscroll;
                                                    			numero_tile = m->schema[i][j];
                                                    			SDL_BlitSurface(m->tileset,&(m->props[numero_tile].R),screen,&Rect_dest);
                                                    		}
                                                    	}
                                                    	return 0;
                                                    }
                                                    

                                                    Certes, les changements ne sont pas extraordinaires, mais je préfère autant ce code-la que le pâté ci-dessus.

                                                    Citation : Fvirtman

                                                    Je préfère une fonction compacte (mais courte), sans exagérer bien sur (par plusieurs commandes sur la meme ligne) plutot qu'une fonction de 200 lignes avec des sauts de ligne a tout va.


                                                    Je suis d'accord la-dessus, mais ne tombe pas trop dans l'excès, ne compacte pas trop ta fonction afin qu'elle ne soit pas illisible ;)

                                                    Citation : Fvirtman

                                                    Pour moi, une fonction doit avoir une seule tâche, donc un seul "paragraphe", sinon je découpe.

                                                    C'est pour cela que mes fonctions sont compactes, mais restent petites. Je comprends qu'on n'aie pas le meme point de vue.


                                                    OK, c'est un autre point de vue en effet :)

                                                    Citation : Fvirtman

                                                    Tu me parles d'espaces, a quel endroit fais tu allusion a propos des espaces manquants ?


                                                    Dans la fonction MoveMap du chapitre Scrolling :
                                                    if (m->xscroll>m->nbtiles_largeur_monde*m->LARGEUR_TILE-m->largeur_fenetre-1)
                                                    	m->xscroll=m->nbtiles_largeur_monde*m->LARGEUR_TILE-m->largeur_fenetre-1;
                                                    if (m->yscroll>m->nbtiles_hauteur_monde*m->HAUTEUR_TILE-m->hauteur_fenetre-1)
                                                    	m->yscroll=m->nbtiles_hauteur_monde*m->HAUTEUR_TILE-m->hauteur_fenetre-1;
                                                    


                                                    Afin de faciliter la relecture, je mettrais des espaces entre chaque opérateur :
                                                    if (m->xscroll > m->nbtiles_largeur_monde * m->LARGEUR_TILE - m->largeur_fenetre - 1)
                                                    	m->xscroll = m->nbtiles_largeur_monde * m->LARGEUR_TILE - m->largeur_fenetre - 1;
                                                    if (m->yscroll > m->nbtiles_hauteur_monde * m->HAUTEUR_TILE - m->hauteur_fenetre - 1)
                                                    	m->yscroll = m->nbtiles_hauteur_monde * m->HAUTEUR_TILE - m->hauteur_fenetre - 1;
                                                    


                                                    Je pense que cela permet clairement, dans les situations où les conditions sont assez longues, d'y améliorer la lisibilité et la maintenance
                                                    Egalement : je mets toujours un espace après une virgule ;)

                                                    Citation : Fvirtman


                                                    En effet, j'ai fait des fonctions avec beaucoup de paramètres et c'est en général à éviter. Je pense en particulier à la fonction "ChargerMap" qui s'étoffe sur les 3 premiers chapitres, en s'assouplissant au fur et à mesure, et donc en prenant davantage de paramètres.
                                                    C'est à éviter car ça peut ralentir dans une zone critique. Cependant, cette fonction étant appelée qu'une fois, cela n'a aucune impacte. Mais peut être verrais je a factoriser un peu les paramètres à terme.

                                                    Quoiqu'il en soit, personnellement, je n'aime pas trop remplir des structures pour les passer aux fonctions (comme SDL_Rect ou beaucoup de fonctions de l'API Windows), mais c'est personnel.


                                                    OK je comprends.

                                                    Citation : Fvirtman

                                                    Euh... Parce que j'habite en France, que je parle mieux le français que l'anglais, et que le tuto est rédigé en Français par un français (moi) et pour des français (mes lecteurs)
                                                    Il est vrai que ça fait "in" de mettre des noms de fonctions en anglais (je le fais pas mal pour mon boulot), mais pour un tuto comme celui ci, je me dis qu'un nom français explicite peut être très parlant !


                                                    Cela me fait penser à un lien que Myphis avait posté.
                                                    Si tu te tiens au français, le mélange avec le nom des fonctions propres à la SDL est assez inélégant. De plus, certaines de tes fonctions ont soit un nom français soit anglais (LoadImage32, MoveMap / ChargerMap, LibererMap)

                                                    Citation : Fvirtman

                                                    Merci pour ton post et ta franchise :)


                                                    De rien c'est tout naturel :)

                                                    EDIT orthographe
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      15 avril 2010 à 15:43:23

                                                      Citation : Monsieur_JaKy

                                                      des tabulations de 8 (?) espaces


                                                      En quoi cela est gênant ?
                                                      "The Linux Kernel Coding Style" utilise 8 espaces comme tabulation !
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Anonyme
                                                        15 avril 2010 à 15:50:55

                                                        Franchement, c'est beaucoup. Quand tu arrives dans un branchement de conditions important :
                                                        int main(void) /* Code pour illustrer */
                                                        {
                                                                if (1)
                                                                {
                                                                        if (2)
                                                                        {
                                                                                if (3)
                                                                                {
                                                                                        if (4)
                                                                                        {
                                                                                                int i;
                                                                                                for (i = 0; i < 5; ++i)
                                                                                                {
                                                                                                        printf("OK !");
                                                                                                }
                                                                                        }
                                                                                }
                                                                        }
                                                                }
                                                                return 0;
                                                        }
                                                        

                                                        Pour les grands écrans OK, mais pour les plus petits, c'est assez embêtant de scroller sur la droite pour voir la fin d'une ligne de code
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          15 avril 2010 à 15:58:55

                                                          C'est un choix comme un autre.
                                                          Les gens de Linux sont très catégorique sur ce point, et pour eux les gens qui veulent rendre l'indentation à 4 sont un fléau pour la société (bon c'est vrai, ils exagèrent un peu).
                                                          Pour eux vu que la tabulation standard est de 8, alors l'indentation devrait être de 8 également.
                                                          En voici un extrait :

                                                          Citation : Linux Kernel Coding Style, Chapitre 1

                                                          Tabs are 8 characters, and thus indentations are also 8 characters.
                                                          There are heretic movements that try to make indentations 4 (or even 2!)
                                                          characters deep, and that is akin to trying to define the value of PI to
                                                          be 3.



                                                          Voici le document en question.

                                                          Bref, tout ça pour dire que pour moi, 8 ou 4 c'est seulement un choix, y'a pas à blamer Fvirtman pour ça :)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          [Tutoriel] Tile Mapping

                                                          × 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