Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de centrage

l'image ne se blit pas a l'endroit prévu

    10 août 2006 à 1:20:59

    Voila je vien vous montrer le code de mon morpion

    Pour le moment il n 'y a pas de IA


    /*

    --- Nom : Morpion
    --- Créateur : Oly
    --- Site : www.oly.izispot.com

    Idée Crée un morpion avec une IA pour adversaire

    */


    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL\SDL.h>
    #include <SDL\SDL_ttf.h>
    #include <SDL\SDL_image.h>
    #include <FMOD/fmod.h>

    #define NBR_CASE_LONGUEUR 3
    #define NBR_CASE_LARGEUR 3


    int main(int argc, char *argv[])
    {
        /*
            --- >>> DECLARATION DES VARIABLES <<< ---
        */


        SDL_Surface *ecran = NULL, *nivo = NULL, *croix = NULL, *cercle = NULL;
        SDL_Rect Position_Map, Position[2][2], PositionMax[2][2];
        SDL_Event event;

        Position_Map.x = 0;
        Position_Map.y = 0;

        int continuer = 1, i = 0, j = 0, px = 100, py = 100, pmx = 300, pmy = 300;
        int libre[2][2], tour = 0;

         for( i = 0 ; i < NBR_CASE_LARGEUR ; i++ ) // PositionMax
        {
            for( j = 0 ; j < NBR_CASE_LONGUEUR ; j++ )
            {
                Position[i][j].x = px;
                px = px + 200;
                Position[i][j].y = py;
                py = py + 200;
            }
            j = 0;
            px = 100;
            py = 100;
        }
        i = 0, j = 0, px = 100, py = 100;

        for( i = 0 ; i < NBR_CASE_LARGEUR ; i++ ) // PositionMax
        {
            for( j = 0 ; j < NBR_CASE_LONGUEUR ; j++ )
            {
                PositionMax[i][j].x = pmx;
                pmx = pmx + 200;
                PositionMax[i][j].y = pmy;
                pmy = pmy + 200;
            }
            j = 0;
            pmx = 300;
            pmy = 300;
        }
        i = 0, j = 0, pmx = 300, pmy = 300;

        for( i = 0 ; i < NBR_CASE_LARGEUR ; i++ ) // Libre
        {
            for( j = 0 ; j < NBR_CASE_LONGUEUR ; j++ )
            {
                libre[i][j] = 0;
            }
            j = 0;
        }
        i = 0, j = 0;

        /*
            --- >>> DEBUT DU PROGRAME <<< ---
        */


        SDL_Init(SDL_INIT_VIDEO); // Initiation de la SDL

        ecran = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE | SDL_DOUBLEBUF ); // Création de l'ecrant
        SDL_WM_SetCaption("Morpion", NULL); // Nom de l ecran


        nivo = IMG_Load("nivo.jpg");
        SDL_BlitSurface(nivo, NULL, ecran, &Position_Map);
        cercle = IMG_Load("cercle.jpg");
        croix = IMG_Load("croix.jpg");

        SDL_Flip(ecran); // ecran de : noire a : nivo1

        /*

            -|- BOUCLE PRINCIPALE -|-

        */


        while(continuer)
        {
            SDL_WaitEvent(&event);

            switch(event.type)
            {
                case SDL_QUIT:
                continuer = 0;
                break;
                case SDL_KEYUP:
                switch (event.key.keysym.sym)
                {
                    case SDLK_ESCAPE:
                    continuer = 0;
                    break;
                }
                case SDL_MOUSEBUTTONUP:
                for ( i = 0 ; i < 2 ; i++ )
                {
                    for ( j = 0 ; j < 2 ; j++ )
                    {
                        if ( event.button.button == SDL_BUTTON_LEFT && event.button.x <= PositionMax[i][j].x && event.button.x >= Position[i][j].x && event.button.y <= PositionMax[i][j].y && event.button.y >= Position[i][j].y )
                        {
                            if ( libre[i][j] == 0 && tour != 1 )
                            {
                                libre[i][j] = 1; // la case 0;0 est occuper par une croix
                                SDL_BlitSurface(croix, NULL, ecran, &Position[i][j]);
                                tour = 1;
                                SDL_Flip(ecran);
                            }
                        }
                    }
                    j = 0;
                }
            }
            tour = 0;
        }


        SDL_Quit();
        FSOUND_Close();
        return EXIT_SUCCESS;
    }


    Maintenant je vous explique mon probleme

    Quand je compile tout sa ...

    Aucune erreur est signaler par mon IDE mais ...

    L'image 'nivo.jpg' qui fait 1024*768 ( tout comme l'ecran ) ne se blit pas a sa position elle se blit a environ 400*400 au lieu de comme vous l ' avez vu sur mon code 0*0


    Help me plz
    Info je compile en C avec Code::Blok


    Merci a tous
    • Partager sur Facebook
    • Partager sur Twitter

    Probleme de centrage

    × 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