Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/07/2008, à 03:03

compte supprimé

SDL_Surface

Bonjour
j'aimerai savoir comment faire passer comme parametre une variable de type SDL_Surface et est t-il possible de recuperer le resultat de la sous sous variable event.key.keysym.sym pour la faire passer dans une fonction et quel est son type? merci

#2 Le 06/07/2008, à 10:49

robrob

Re : SDL_Surface

SDL_Surface est une structure:
http://www.libsdl.org/cgi/docwiki.cgi/SDL_Surface

En C, tu peux la passer directement comme tel ou par pointeur. En C++ tu peux en plus utiliser les références.
A voir en fonction de tes besoins.

Pour la deuxième question, la bibli SDL est très bien documentée, la réponse se trouve dans la doc (RTFM comme on dit wink) :
http://www.libsdl.org/cgi/docwiki.cgi/SDL_keysym
et pour SDLKey:
http://www.libsdl.org/cgi/docwiki.cgi/SDLKey

Hors ligne

#3 Le 07/07/2008, à 16:00

compte supprimé

Re : SDL_Surface

en fait j'essaie de faire passer directement ma variable mais j'obtient une erreur :

/home/kamagatos/acti/Mario/main.cpp|22|error: conversion from ‘SDL_Surface*’ to non-scalar type ‘SDL_Surface’ requested|

#4 Le 07/07/2008, à 18:48

robrob

Re : SDL_Surface

D'après l'erreur, tu essayes d'affecter un pointeur sur une SDL_Surface à une variable de type SDL_Surface. C'est normal que le compilateur se plaigne.

Pour t'aider mieux, il faudrait que tu postes ton code (ou tout du moins la partie qui pose problème).

A tout hasard, quelques infos sur les pointeurs ici:
http://c.developpez.com/faq/?page=pointeurs

Hors ligne

#5 Le 08/07/2008, à 12:06

compte supprimé

Re : SDL_Surface

voici la fonction main de mon programme

int move(SDL_Surface );

int main(int argc, char* argv[])
{
    //declaration de variable

    SDL_Surface *Main_screen=NULL;

    //Dev de la SDL

    SDL_Init(SDL_INIT_VIDEO);

    SDL_WM_SetCaption("KamagatOS",NULL);

    Main_screen=SDL_SetVideoMode(500,500,32,SDL_HWSURFACE|SDL_RESIZABLE|SDL_DOUBLEBUF);

    move(&Main_screen);

    SDL_Quit();

    return EXIT_SUCCESS;
    }


int move(SDL_Surface *screen)
{...}

En fait ce que j'essaie de faire c'est de faire passer Main_Screen a ma fonction pour pouvoir y faire des "blitting" de nouvelles surfaces que j'aurai a creer.
merci

Dernière modification par kamagatos (Le 08/07/2008, à 12:07)

#6 Le 09/07/2008, à 11:38

robrob

Re : SDL_Surface

move(*Main_screen);

plutôt wink

Résumons:
- Main_screen est un pointeur sur une structure
- si tu fais &Main_screen tu récupères le pointeur sur le pointeur
- si tu fais *Main_screen tu récupères la structure pointée

Dernière modification par robrob (Le 09/07/2008, à 11:45)

Hors ligne

#7 Le 10/07/2008, à 12:32

haku_arsene

Re : SDL_Surface

Salut,

J'ai l'impression que c'est

move(Main_screen);

Vu que move attend un pointeur vers SDL_Surface, et que Main_screen est un pointeur.

Non ?

A plus !

Dernière modification par haku_arsene (Le 10/07/2008, à 12:35)

Hors ligne