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

 Delphi Discussion :

Afficher un Sprite, l'animer ( DirectX )


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Afficher un Sprite, l'animer ( DirectX )
    Bonjour, je vous explique mon problème :

    Je dois réaliser un jeu, en utilisant directX, et je m'occupe du moteur graphique.

    Cependant, impossible de démarrer.

    Je cherche des tutos mais je ne trouve jamais de bons tutos, et à chaque fois ils utilisent une méthode différente que j'ai du mal à comprendre.

    J'aimerais donc savoir s'il était possible que vous m'expliquiez comment afficher un sprite dans une fenêtre ( j'ai réussi à afficher la fenêtre \o/ ), et si possible comment faire pour l'animer aussi ( j'aimerais le faire aller du haut de l'écran vers le bas ).

    Je rame complètement et cela commence à m'énerver un peu, donc merci d'avance pour votre futur aide ^^

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut et bienvenue sur les forums de Developpez

    Pour ce qui est de l'utilisation de directX, je ne sais pas si tu utilises des composants spécifiques ou pas.
    Je te propose de regarder du coté des composants Asphyre ainsi que ce tuto et également celui-ci.

    Je ne sais pas si ça t'aidera ...
    Bon courage
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour, et merci d'avoir répondu si vite ^^

    J'avais pensé utiliser Asphyre, et j'avais commencé à suivre le tuto, mais il paraît qu'on ne peut pas l'utiliser dans le cadre de notre projet.. Je n'ai pas très bien compris pourquoi, mais bon, les faits sont la.

    Apparemment on nous conseille SlimDX, j'ai commencé avec ca et c'est avec ca que j'ai affiché ma fenêtre.

  4. #4
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Rebonsoir,

    Pour ce qui est de l'utilisation des compos Asphyre, c'est dommage, en effet.
    En ce qui concerne SlimDX, je ne le connais pas et d'après mes petites recherches (très rapides par manque de temps), je n'ai pas trouvé beaucoup d'infos quant à l'utilisation de ce compo (avec Delphi, encore moins).

    Désolé de ne pas pouvoir faire mieux! De plus, je ne maîtrise pas du tout DirectX, j'ai juste parcouru les tutos que je t'ai mentionné dans le message précédent ...

    Bon courage dans tes recherches,
    Cordialement, Ero-Sennin

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Ahah, je savais que j'aurais du prendre OpenGL, le démarrage semble plus simple ^^

    Merci quand même en tout cas. J'attends d'autres réponses alors =)

    [Edit] Voila le code sur lequel je travail, la le but est d'essayé d'afficher un carré fait sous paint ( PinkSquare.jpg donc ) dans une fenêtre.

    Or quand je compile, la fenêtre s'affiche mais sans le carré.. Je comprends pas ou sa bug :\

    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
    unit u_graph;
     
    interface
     
    uses
      SlimDX, SlimDX.Direct3D9, System.Windows.Forms, System.Drawing;
     
    type
      Square = class(Tobject)
      public
        Sprite : Sprite;
        TextureUp : Texture;
        X,Y : integer;
        DetailTexture : SurfaceDescription;
      end;
     
    procedure render();
      procedure game_init();
    procedure game_run();
     
    implementation
     
    var
      Square1 : Square;
      my_d3d : Direct3D;
      my_device : Device;
      my_form : Form;
     
    procedure game_init();
      var
        params : PresentParameters;
      begin
        my_d3d := Direct3D.Create();
     
        // Affichage de la fenetre
        my_form := Form.Create;
        my_form.Text := 'TP DirectX' ;
        my_form.Location := Point.Create(0,0) ;
        my_form.StartPosition := FormStartPosition.Manual;
        my_form.ClientSize := Size.Create(1024, 768);
        my_form.Show();
     
        // Creation des PresentParameters
        params := PresentParameters.Create;
        params.Windowed := true;
        params.SwapEffect := SwapEffect.Discard; { Ne pas chercher à comprendre ça }
     
        // Creation du Device
        my_device := Device.Create(my_d3d, 0, DeviceType.Hardware, my_form.Handle,
        CreateFlags.HardwareVertexProcessing, params);
     
        // Sprites
        Square1 := Square.Create();
        Square1.X := 400;
        Square1.Y := 0;
        Square1.Sprite := Sprite.Create(my_device);
        Square1.TextureUp := Texture.FromFile(my_device,'PinkSquare.jpg');
        Square1.TextureUp.Preload();
        Square1.DetailTexture := Square1.TextureUp.GetLevelDescription(0) ;
      end;
     
    procedure render();
    begin
      my_device.Clear(ClearFlags.Target, Color4.Create(0, 0.2, 0.3), 1, 0);
          my_device.BeginScene();
     
      Square1.Sprite.&Begin(SpriteFlags.AlphaBlend);  //transparence
        Square1.Sprite.Draw(Square1.TextureUp,Vector3.Create(Square1.x,Square1.y,0),Vector3.Create(0,0,0),Color4.Create(0, 0, 0));
       Square1.Sprite.&End;
     
       my_device.EndScene();
          my_device.Present();
     
     
    end;
     
    procedure game_run();
      begin
           game_init();
        while my_form.Created do
        begin
     
     
          render();
          Application.DoEvents();
     
     
        end;
        my_form.Dispose;
      end;
     
    end.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Pas sûr que les doubles post soient très appréciés, mais ca me permet de faire un UP et une ptite MAJ de où j'en suis.

    Donc il semblerait qu'on m'a trompé, puisque Asphyre est autorisé. J'vais donc me lancer la dedans, et recommencer le tuto à Zéro, voir ce que ca donne =)


    [Edit] J'ai commencé a faire le pti prog ' Hello world ! ' du tuto, mais ca ne marche pas ( ca serait trop facile sinon je suppose ).

    J'ai bien évidemment le même code, mais ca ne se lance pas... En même temps j'ai rien initialisé dans le .dpr, mais je vois pas trop comment le faire :\

    [Edit2] Et il me sort plein d'erreur de types dans l'unité LibXMLParser.pas oO Alors la je pige plus rien x)

    [Edit3] Apparemment ca viendrait du fait que Asphyre 4.1 marche pas avec Delphi 2009 ..

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut Gamecubeur,

    En ce qui concerne l'utilisation d'Asphyre, en effet, la version 2009 de Delphi ne la supporte pas. Néanmoins, si ton projet n'utilise pas les fonctionnalités de Delphi 2009, rien ne t'empêche de télécharger la version Turbo Delphi 2006 qui est gratuite et qui elle, supporte Asphyre ...

    A toi de voir si c'est faisable
    Cordialement,
    Ero-Sennin

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Oui c'est ce qu'on a décidé de faire, étant donné que Asphyre semble vraiment simplifier la vie. J'installe une version antérieure, je refais le tuto, et je vois ce que ca va donner =) Merci en tout cas ^^

Discussions similaires

  1. XNA 4.0 Sprites et animation
    Par Mamady87 dans le forum XNA/Monogame
    Réponses: 2
    Dernier message: 28/07/2011, 09h17
  2. sprites et animation sur sdl
    Par yous18 dans le forum C
    Réponses: 4
    Dernier message: 30/03/2010, 00h56
  3. Flash s'affiche mais ne s'anime pas
    Par Mickael33 dans le forum Intégration
    Réponses: 3
    Dernier message: 04/01/2010, 19h13
  4. swf s'affiche mais ne s'anime pas
    Par andyb45 dans le forum Intégration
    Réponses: 3
    Dernier message: 26/12/2009, 11h19
  5. quels format de fichiers pour l'animation DirectX
    Par korsakoff69 dans le forum DirectX
    Réponses: 6
    Dernier message: 06/07/2009, 22h44

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