Annonce

Réduire
Aucune annonce.

[DEV] pour les nuls

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Nan pour la couleur, quand on développe et qu'on veut suivre les évols, on trace dans un CVS/SVN/GIT au choix

    Ouvre un googlecode (vla le mien c'est ultra pratique http://code.google.com/p/tupm/ )

    Commentaire


    • Github c'est mieux, ouvre un github !

      Commentaire


      • J'aime pas du tout le protocole . c'est bien mieux de faire du svn . enfin, affaire de gout ^^

        Commentaire


        • 1er essai de mouvement .

          Après de multiples essais complètement foirés (pb de reconnaissance de constantes et d'autres, et du fait qu'il faille déclarer les lib dans le makefile (faut le trouver ça aussi ^^ )), voilà ce que cela donne :

          http://imageshack.us/clip/my-videos/580/47703073.mp4/

          Le premier qui rigole, il a une baffe .

          Bon, il y a du boulot. C'est là que ça se complique.




          Je ne comprends pas. J'ai ça pour les 2 sprites :

          /* Affichage du sol */
          set_current_sprite(1); /* On se positionne sur le sprite 1 (sur 384 ) evite d'utiliser le 0 et le 384 car buggés */

          /* On dessine le sprite "bg" à la position 0, 0
          15 = facteur de réduction x(15 = taille maxi)
          255= facteur de réduction y(255= taille maxi)
          14 = hauteur : 224 / 16
          20 = largeur : 320 / 16
          */
          write_sprite_data(0, 0, 15, 255, 14, 20, (const PTILEMAP)&bg);


          /* affichage de ballon
          on se met sur le sprite 21
          on l'affiche en x,y
          2 tiles de large
          */

          set_current_sprite(21);
          write_sprite_data(x, y, 15, 255, 2, 2, (const PTILEMAP)&ballon);

          Pourtant, le x et le y sont attribués à ballon dans la dernière ligne ici, et pas à bg. Et c'est bg qui bouge, le méchant.

          De plus, on voit bien que les coordonnées de ballon sont 0,0 sur l'écran (en haut à gauche de l'écran, c'est 0,0 ? ).




          Edit :

          ça doit venir de là :

          // As the tilemap for our sprite never change, we just update its
          // coordinates
          change_sprite_pos(2, x, y, clip);
          change_sprite_zoom(2, xz, yz, 1);

          Ces 2 lignes concernent le sprite 2 = c'est pour ça que le sprite 1 (le bord gauche de bg) ne bouge pas.

          Je change le 2 en 21 sur les 2 lignes.

          Et ça donne :

          http://imageshack.us/clip/my-videos/844/pwgq.mp4/

          !!! VICTOLY !!!

          Bon, faut que je comprenne ce que j'ai fais maintenant .

          Il y a aussi un problème avec la couleur transparente de ballon. C'est la couleur noire; résultat, sur le bg, on voit le bg au travers de ballon, car il y a du noir sur ce sprite. J'ai essayé de changer la couleur noire en gris très foncé, mais GIMP la-dessus n'est pas mon ami :( .
          Dernière modification par chacha, 04 juillet 2012, 16h33.

          Commentaire


          • Envoyé par chacha Voir le message
            Edit :

            ça doit venir de là :

            // As the tilemap for our sprite never change, we just update its
            // coordinates
            change_sprite_pos(2, x, y, clip);
            change_sprite_zoom(2, xz, yz, 1);

            Ces 2 lignes concernent le sprite 2 = c'est pour ça que le sprite 1 (le bord gauche de bg) ne bouge pas.

            Je change le 2 en 21 sur les 2 lignes.
            Yes c'est bien à cause de ca, le 1er parametre est celui du sprite a déplacer/dézoomer.

            Code:
            5.2.1. change_sprite_pos
            Syntax
            #include 
            void change_sprite_pos(int sprite, int x, int y, int clipping);
            Description
            Change position and clipping size attributes for the specified sprite.
            Return Value
            None
            Tu as mis 2(au lieu de 1 pour ton BG) c'est pour ça que la première bande du BG ne bouge pas. Remplace le 2 par 21 et ton ballon devrait se promener.

            Tu avances vite !

            Commentaire


            • Merci, mais il y a énormément de points à modifier/ajouter pour que cela fonctionne.

              Je vais essayer de bloquer le sprite DANS l'écran, pour qu'il ne puisse pas en sortir.


              Edit :

              Que signifie le signe &= ? Une valeur max qui ne peut être dépassée ? Ça m'intéresse, car je voudrais savoir son équivalent en valeur minimum à ne pas dépasser aussi ^^ .

              Edit ² :

              j'ai mis :

              // Limit values
              x &= 20;
              y &= 100;

              xz &= 15;
              yz &= 255;
              clip &= 63;

              Il a pas apprécié : le ballon est pris de spasmes bizarres. Ça doit pas être ça ^^ .

              Edit :

              J'ai remis comme avant.

              Au démarrage j'ai ça :



              En hauteur, j'ai bien 0, mais en x=0 (comme sur l'image), le sprite déborde à gauche.

              Mon sprite est comme ceci :



              J'ai compté, l'image du sprite apparait à partir du 9ème pixel en partant de la gauche, soit la moitié d'un tile (16 pixels). Doit bien y avoir une raison .

              Edith :

              Je pense que la position 0 est définie au milieu du premier tile du sprite. J'essaie avec la position 9 en x pour voir :

              // Start coordinates for our sprite
              x = 9;
              y = 0;
              xz = 15;
              yz = 255;
              clip = 32;

              Ça fonctionne (sans bouger le ballon) :



              Il faut que j'affine, car il y a un pixel entre le bord et le sprite...Ayé, à x=8, le sprite est au bord de l'écran...C'est bon, j'ai compris : le premier pixel est le n° 0, donc le neuvième est le n°8. CQFD (suffit de faire un dessin en fait ).

              Les petits ... sont en fait des moments de réflexion autres que des edit (oui, oui, j'aime expliquer).
              Dernière modification par chacha, 04 juillet 2012, 18h26.

              Commentaire


              • Les opérateurs en C

                Commentaire


                • Bien ,bien, bien...

                  Commentaire


                  • Ayé, le ballon ne peut plus sortir de l'écran.

                    J'ai bloqué le sprite entre x=8 et x=280 (là, j'ai un problème de compréhension), et y=0 et y=148. J'ai gardé bg en fond, d'ou le 148.

                    Je ne comprend pas le 280 en x ??

                    Mon sprite fait 2 tiles de 16, soit 32 px.

                    La position en haut à gauche du tile est en 8,0 (soit x, y).

                    La position en haut à droite sur l'écran est en 280,0. x =280, mais pourquoi ?

                    Combien y a t il de px en abscisse ? J'ai vu quelque part qu'il y en avait 320.

                    320-(32-8) = 296

                    J'ai 16 px soit 1 tile en trop.

                    Combien y a t il de tiles en abscisse (même question qu'en px en fait) ? 20 ou 19 ?

                    Ou alors on affiche que sur 19 tiles au lieu de 20.



                    :

                    Je crois apercevoir le bout de ce tunnel ici :


                    source

                    "Fix layout. The grey area is part of the display but only the area in the red rectangle should be used."

                    Apparemment, on utilise pas la première colonne (d'ou le x=8 min peut-être) et la dernière. Ou alors ça concerne les tiles fix.
                    Dernière modification par chacha, 05 juillet 2012, 10h46.

                    Commentaire


                    • Mame coupe 8 pixels à gauche et à droite, faut le corriger si tu veux avoir le "vrai" écran complet.

                      280+32+8=320px de large, le compte est bon

                      Commentaire


                      • Envoyé par HPMAN Voir le message
                        Mame coupe 8 pixels à gauche et à droite, faut le corriger si tu veux avoir le "vrai" écran complet.

                        280+32+8=320px de large, le compte est bon
                        Corriger MAME ?

                        Maiiiis...... bien sûr, tout de suite .



                        Je resterai pour l'instant dans cet écran "corrigé" .

                        Commentaire


                        • SNK recommande de ne pas utiliser la 1ere et dernière colonne, car les écrans dans les bornes c'est pas toujours réglé parfaitement. La recommandation est donc de ne rien y mettre d'important.

                          Maintenant ce n'est qu'un usage, le hardware affiche bien cette zone (contrairement au vilain mame)

                          Commentaire


                          • Ha mince, MAME n'affiche pas cette zone alors.

                            Bon, c'est pas GLOP ça. Après, c'est juste une zone de l'écran.

                            Donc cette zone existe, mais n'est pas affichée. Bien.


                            La suite :

                            - voir comment fonctionne un sprite tel que chunli dans le tuto1 : c'est un seul bitmap mais il "défile".

                            - faire bouger ballon tout seul !!!!! (rebondir quoi). Si j'arrive à animer un sprite, je le ferai plus petit.
                            Dernière modification par chacha, 05 juillet 2012, 11h53.

                            Commentaire


                            • Dans cette ligne (tirée du tuto1) :

                              /* Puis on affiche chunli en x=60, y=120 .
                              Le sprite fait 128px * 128px soit 8x8 tiles
                              Note : L'étape d'animation
                              */
                              write_sprite_data(60, 120, 15, 255, 8, 8, (const PTILEMAP)&chunli[animation * 8]);

                              ce 8 indique que l'animation se porte sur 8 tiles, et il affiche donc 8 tiles par 8 tiles : il prend 8 tiles, il les affiche; il prend les 8 tiles suivants, il les affiche...

                              Si le sprite 4 animations différentes, on mettrai 8 quand même, car c'est tous les 8 tiles qu'il faut afficher les 8 tiles suivants. Si mon sprite fait 2 tiles de large, on met 2. C'est ça ?

                              Edit :



                              Je rentre dans le vif du sujet :

                              Je veux ajouter à ce que j'ai déjà fais le srpite de chunli animé.

                              J'ai donc mis ce qui anime ce sprite dans le while(1) du ballon qui bouge. En fait, je ne sais pas où le mettre. Dans ce while ou ailleurs ?

                              Résultat : ça reset constamment :( .

                              Edit :

                              Faut-il que je fasse un deuxième while pour chunli ? Si oui, vu que ce sont des boucles infinies, va-t-on en sortir quand je bouge le ballon ? J'essaie.

                              Edit, j'ai mal à la tête. File-moi un aspirine...

                              Bon, j'ai merdouillé mais j'ai réussi . J'ai mis le while de chunli dans le while de ballon, et ça fonctionne. chunli est devant ballon quand il est derrière elle (certains me diront c'est normal, mais non, car c'est le n° du sprite qui donne la priorité d'affichage : ballon est 21 et chunli 23 dans mon main.c, elle passe donc devant lui.

                              Je n'arrive pas à télécharger ma vidéo sur IMAGESHACK, sinon, je vous montrerai ^^ .
                              Dernière modification par chacha, 05 juillet 2012, 18h24.

                              Commentaire


                              • Je me suis fais un ch'ti sprite animé de 4 tiles de large sur 1 de haut.

                                Je l'ai appelé chunli pour gagner du temps.

                                Je viens de comprendre je pense (ou pas) :

                                le sprite est animé, mais je vois un bout du sprite de saturne dedans.... ça merdouille sec quoi.

                                Je viens de penser que j'ai mis 4 comme valeur max de l'animation, alors que ça doit être 3 (0 1 2 et 3, soit 4 images en tout). J'essaierai demain matin.

                                Il est môche mon sprite en plus. C'est pas si simple que ça de créer un spite en fait. Alors l'animer en plus... .

                                Commentaire

                                Chargement...
                                X