SDL : Plusieurs surfaces en une
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

SDL : Plusieurs surfaces en une



  1. #1
    AmigaOS

    SDL : Plusieurs surfaces en une


    ------

    Bonjour

    Je suis en train de m’entraîner sur la bibliothèque SDL... Et je me demande s’il est possible de charger un BMP, et ensuite de l’enregistrer en plusieurs fois en une seul surface (bien sur à des positions différentes dans cette surface). Sinon par exemple dans un jeu de platforme où le sol est fait a partir de milliers de carrés identiques, on serait obligé de créer des milliers de surfaces et de faire des milliers de blittages avec peut être des boucles...

    Merci

    -----
    Images attachées Images attachées  

  2. #2
    invite3d779cae

    Re : SDL : Plusieurs surfaces en une

    Oui c'est faisable, pour cela il faut créer une surface suffisamment grande pour contenir plusieurs fois l'image, puis blitter l'image source autant de fois que nécessaire sur l'image cible.

    Code:
    SDL_Rect position;
    int ligne = 10, colonne = 10, i = 0, j = 0; 
    SDL_Surface *image_source = NULL, *image_cible = NULL;
    
    image_source = SDL_LoadBMP("image.bmp");
    image_cible =  = SDL_CreateRGBSurface(SDL_HWSURFACE, colonne * image_source->w, ligne * image_source->h, 32, 0, 0, 0, 0);
    
    for(i = 0 ; i < ligne ; i++)
    {
    for(j = 0 ; j < colonne ; j++)
    {
    position.x = image_source->w * j;
    position.y = image_source->h * (i + 1);
    SDL_BlitSurface(image_source, NULL, image_cible, &position);
    }
    }
    Une fois la boucle exécuté l'image_cible a été pavé par l'image_source, on peut donc utiliser l'image_cible comme fond.

  3. #3
    AmigaOS

    Re : SDL : Plusieurs surfaces en une

    Merci c'est ce qu'il me fallait !
    Et on doit même enlever (i + 1) et laisser juste i, sinon il me manque une ligne...

  4. #4
    invite3d779cae

    Re : SDL : Plusieurs surfaces en une

    Oui c'est vrai, je ne savais plus exactement comment était le repère en SDL, mais après vérification je vois qu'il a pour origine le coin supérieur gauche, mais il est orienté vers le bas ! Donc oui pas besoin de i + 1.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Problèmes d’installation SDL
    Par AmigaOS dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 26/02/2011, 20h06
  2. Sdl
    Par invite7f58f807 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 26/12/2010, 20h13
  3. Comment charger plusieurs batteries une à une en alternance
    Par invited900d705 dans le forum Électronique
    Réponses: 19
    Dernier message: 20/10/2010, 14h45
  4. Créer une spirale avec des surfaces planes
    Par invite13dff322 dans le forum Technologies
    Réponses: 3
    Dernier message: 09/04/2010, 15h27
  5. SDL en DevC++
    Par invite6c248c41 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 25/05/2008, 18h28