IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[Sources SDL] C/C++ --> Pascal/delphi


Sujet :

Contribuez

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut [Sources SDL] C/C++ --> Pascal/delphi
    Salut,

    J'ai découvert SDL y a pas longtemps et je trouve ça génial. C bien d'avoir fait le fait une page de codes sources SDL mais je trouve dommage que toute les sources soit en C. Je veux bien me porter volontaire pour la traduction en Pascal d'une partie des sources au cas ou ca intéresse quelqu'un

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    N'hésite pas

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par fab56
    Salut,

    J'ai découvert SDL y a pas longtemps et je trouve ça génial. C bien d'avoir fait le fait une page de codes sources SDL mais je trouve dommage que toute les sources soit en C. Je veux bien me porter volontaire pour la traduction en Pascal d'une partie des sources au cas ou ca intéresse quelqu'un
    En effet, ce sera un plaisir de les voir et les ajouter à la page

    Essaie de mettre autant de commentaires que possible et de garder le code le plus propre possible avec tous les tests de vérifications du bon fonctionnement des fonctions SDL

    Jc

  4. #4
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut
    Salut,

    bon j'ai traduit les deux premières sources de la section Graphisme.
    je sais ça va pas vite mais c'est déjà ça

    Note : les fichiers sources sont au format dpr

    fondu.dpr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    (*
      Codes sources SDL
        sur developpez.com
     
      URL : http://jeux.developpez.com/sources/sdl/
     
      Graphisme > Fondu entre deux images
         Un code qui crée un effet de fondu (transition) entre deux images.
     
      Code original en C : Mokona
      Code traduit en Pascal : fab56
     
      Version originale : 01/07/2006
      Version traduite  : 17/02/2007
     
      Ce code-source utilise les en-tête SDL pour Pascal de la Jedi-SDL,
       il devrait donc être compatible avec Free Pascal.
      J'ai tenté d'être le plus fidèle possible au code original,
       j'ai d'ailleurs gardés la plupart des commentaires.
    *)
     
    program Fondu;
     
    uses
      SDL,
      SDL_image;
     
    var
        { Surface écran }
        sdlMainScreen,
     
        { Surface contenant les deux images }
        sdlLoadedPicture1,
        sdlLoadedPicture2: PSDL_Surface;
     
        { Drapeau de fin de boucle }
        Quit: Boolean;
     
        { Valeur d'alpha }
        Alpha: Smallint;
     
        { Delta d'alpha }
        DeltaAlpha: Smallint;
     
        { Structure évenementiel }
        Event: TSDL_Event;
     
    begin
        { Initialisatoin des variables }
        Alpha:=0;
        DeltaAlpha:=7;
        Quit:=False;
     
        { Initialisation de la partie Vidéo de SDL }
        if ( SDL_Init (SDL_INIT_VIDEO ) = -1) then
          Exit;
     
        { Demande d'affichage en 640x480 16 bits }
        { SDL_SWSURFACE : la surface est crée en RAM système }
        { SDL_DOUBLEBUF : on utilise deux buffers }
        sdlMainScreen := SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE or SDL_DOUBLEBUF);
        SDL_WM_SetCaption(PChar('Graphisme -> Fondu entre deux images'), nil);
     
        { En cas d'echec, on sort }
        if (sdlMainScreen = nil) then
          Exit;
     
        { Charge l'image qui contient les sprites }
        sdlLoadedPicture1 := SDL_LoadBMP('image1.bmp');
        if(sdlLoadedPicture1 = nil) then
          Exit;
     
        sdlLoadedPicture2 := SDL_LoadBMP('image2.bmp');
        if(sdlLoadedPicture2 = nil) then
          Exit;
     
        { Boucle principale }
        while not Quit do
        begin
            { Lecture des évènements dans la queue d'évènements }
            while (SDL_PollEvent (@Event) > 0) do
            begin
                { Evenement de fermeture d'application, on sort la boucle }
                case (Event.type_) of
                  SDL_QUITEv : Quit := True;
                end;
            end;
     
    	Inc(Alpha, DeltaAlpha);
    	if(Alpha>=SDL_ALPHA_OPAQUE) then
    	begin
              Alpha := SDL_ALPHA_OPAQUE;
              DeltaAlpha := -DeltaAlpha;
    	end
    	else if(Alpha <= 0) then
    	begin
              Alpha := 0;
              DeltaAlpha := -DeltaAlpha;
            end;
     
    	{ On efface l'écran }
    	SDL_BlitSurface(sdlLoadedPicture1, nil, sdlMainScreen, nil);
     
    	{ Mise à jour de l'alpha }
    	SDL_SetAlpha(sdlLoadedPicture2, SDL_SRCALPHA, Alpha);
     
    	{ Affichage de l'image à l'écran }
    	SDL_BlitSurface(sdlLoadedPicture2, nil, sdlMainScreen,  nil);
     
            { Echange des deux buffers }
            SDL_Flip(sdlMainScreen);
        end;
     
        { Libération des surfaces }
        SDL_FreeSurface(sdlLoadedPicture1);
        SDL_FreeSurface(sdlLoadedPicture2);
     
    end.
    Points.dpr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     (*
      Codes sources SDL
        sur developpez.com
     
      URL : http://jeux.developpez.com/sources/sdl/
     
      Graphisme > Affichage de points derrière le curseur
         Ce programme affiche une suite de points à l'écran qui suivent le mouvement de la souris.
     
      Code original en C : Mokona
      Code traduit en Pascal : fab56
     
      Version originale : 01/07/2006
      Version traduite  : 17/02/2007
     
      Ce code-source utilise les en-tête SDL pour Pascal de la Jedi-SDL,
       il devrait donc être compatible avec Free Pascal.
      J'ai tenté d'être le plus fidèle possible au code original,
       j'ai d'ailleurs gardés la plupart des commentaires.
    *)
     
    program Points;
     
    uses
      SDL,
      SDL_image;
     
    const
      MAX_MOUSE_POS = 20;
     
    var
      { Pointeur sur la surface représentant l'écran }
      Screen : PSDL_Surface;
     
      { Le buffer de positions de la souris }
      MouseX: array[0..MAX_MOUSE_POS] of Word;
      MouseY: array[0..MAX_MOUSE_POS] of Word;
      MousePos: Word;
     
      Quit: Boolean;
     
      { Structure évenementiel }
      Event: TSDL_Event;
     
      { Fonction d'affichage principale }
      procedure Draw();
      var
        Rect: TSDL_Rect;
        Color: Cardinal;
        Index: Word;
      begin
        { Définition de la couleur noire afin d'effacer l'écran }
        Color := SDL_MapRGB (Screen.format, 0, 0, 0);
        SDL_FillRect(Screen, nil, Color);
     
        { Définition de la couleur bleu pour afficher les carrés }
        Color := SDL_MapRGB (Screen.format, 0, 0, 255);
     
            { Affichage de tous les carrés }
    	for Index := 0 to MAX_MOUSE_POS do
            begin
              { Description du carré : 5 de côté, à la position indiquée par le buffer }
              Rect.W := 5;
    	  Rect.h := 5;
    	  Rect.X := MouseX[Index];
    	  Rect.Y := MouseY[Index];
              SDL_FillRect (Screen, @Rect, Color);
    	end;
     
    	{ On utilise du double buffer, on change donc de buffer afin d'afficher }
    	SDL_Flip (Screen);
      end;
     
    begin
       Quit:=False;
     
       { Initialisation de la partie Vidéo de SDL }
       if ( SDL_Init (SDL_INIT_VIDEO) = -1 ) then
         { En cas d'échec, sortie }
         Exit;
     
       { Demande d'affichage en 640x480 16 bits }
       { SDL_SWSURFACE : la surface est crée en RAM système }
       { SDL_DOUBLEBUF : on utilise deux buffers }
       Screen := SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE or SDL_DOUBLEBUF);
       SDL_WM_SetCaption(PChar('Graphisme -> Serpent'), nil);
     
       { En cas d'echec, on sort }
       if (Screen = nil) then
         Exit;
     
       { Boucle principale }
       while not Quit do
       begin
         { Lecture des évènements dans la queue d'évènements }
         while (SDL_PollEvent (@event) > 0) do
         begin
           case Event.type_ of
              { Evenement de fermture d'application, on sort la boucle }
              SDL_QUITEv: Quit:=True;
     
    	  { Evenement de mouvement de la souris, on enregistre la nouvelle position }
              SDL_MOUSEMOTION: begin
                    MouseX[MousePos] := Event.motion.x;
                    MouseY[MousePos] := Event.motion.y;
                    Inc(MousePos);
                    if(MousePos = MAX_MOUSE_POS) then
                       MousePos := 0;
     
    		{ Affichage à l'écran }
    		Draw();
              end;
           end;
     
         end;
       end;
      SDL_FreeSurface(Screen);
      SDL_Quit;
    end.
    Ils sont aussi disponible en version archivé
    sur mon site, je mettrai les URL plus tard

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Février 2005
    Messages : 242
    Points : 63
    Points
    63
    Par défaut
    Salut tout le monde, après un temps d'absence un peu long, je renviens pour reprendre en mains le projet que je m'était donné qui était de traduire en Pascal/Delphi tous les sources disponibles dans la section sources SDL.

    Je pense regroupez tous les sources d'une même catégorie dans un archive.
    (ex. graphisme.tar.gz, texte, evenement, jeux, ...)

    Bon assez parlé, au boulot !

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par fab56
    Salut tout le monde, après un temps d'absence un peu long, je renviens pour reprendre en mains le projet que je m'était donné qui était de traduire en Pascal/Delphi tous les sources disponibles dans la section sources SDL.

    Je pense regroupez tous les sources d'une même catégorie dans un archive.
    (ex. graphisme.tar.gz, texte, evenement, jeux, ...)

    Bon assez parlé, au boulot !
    Hmm, non ce serait mieux de les séparer mais au pire je le ferais moi, comme ca je mets les liens directement en place sur la page source.

    pour ton aide !
    Jc

Discussions similaires

  1. [FAQ] [Source] [SDL] Nombre de fps
    Par fearyourself dans le forum Contribuez
    Réponses: 10
    Dernier message: 25/07/2006, 09h42
  2. [Source] [SDL] [C++] snake en SDL
    Par loka dans le forum Contribuez
    Réponses: 4
    Dernier message: 14/07/2006, 22h32
  3. Codes sources SDL
    Par raptor70 dans le forum SDL
    Réponses: 0
    Dernier message: 14/07/2006, 05h12
  4. [Source] [SDL] Commencement d'un casse brique
    Par grincheux01 dans le forum Contribuez
    Réponses: 8
    Dernier message: 29/06/2006, 12h27
  5. Passer du Pascal à Delphi
    Par poppels dans le forum Langage
    Réponses: 7
    Dernier message: 30/08/2002, 21h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo