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 :

Apprendre à créer un jeu en 3D avec Delphi et FireMonkey, un tutoriel de Grégory Bersegeay


Sujet :

Delphi

  1. #1
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 930
    Points : 59 398
    Points
    59 398
    Billets dans le blog
    2
    Par défaut Apprendre à créer un jeu en 3D avec Delphi et FireMonkey, un tutoriel de Grégory Bersegeay
    Apprendre à créer un jeu en 3D avec Delphi et FireMonkey
    Un projet compilable pour Windows, Mac OS X, Android et iOS, réalisé avec Delphi 10 Seattle

    À l'occasion de sa première approche du développement avec FireMonkey, le framework multiplate-forme de Delphi, Grégory Bersegeay a décidé de reprendre un jeu vidéo mythique : Pong. Cela nous permet de voir des rudiments de 3D et d'intelligence artificielle, le tout dans un projet relativement simple d'environ 420 lignes de code.


    Les étapes les plus importantes de la création du projet sont détaillées. Sans toucher au code mais simplement en recompilant, nous pourrons faire tourner l'application sous Windows et OS X. Si l'on dispose du plugin Mobile ou d'une version Enterprise de Delphi, on peut le compiler aussi pour iOS et Android.

    http://gbegreg.developpez.com/tutori...eation-jeu-3d/

    Et vous ?
    Que pensez-vous de ce tutoriel ?
    Avez-vous déjà testé Delphi XE ?
    Connaissez-vous le framework FireMonkey ?




    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Delphi
    Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation des jeux
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 663
    Points : 6 949
    Points
    6 949
    Par défaut
    Je n'ai pas vu le lien pour récupérer les sources.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (11.6 - 14.6)

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Le lien pour télécharger les sources est présent au début du chapitre 3. Peut être faut il le rendre plus visible ?
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    Merci pour ce tutoriel bien fait et instructif qui rend un grand service à la communauté .

    J'espère qu'il incitera d'autres à écrire pour FMX, car ce framework puissant manque de tutoriels adaptés aux débutants, surtout dans le domaine de la 3D.
    Ce bravo s'accompagne par conséquent d'une invitation pressante aux contributeurs...
    Encore merci .
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Intéressant !
    Merci pour ce Tutoriel !

    Sinon
    Sur Delphi 10.1 Berlin Version 24.0.22858.6822 (la version gratuite), tout est rouge, pourtant, dans l'inspecteur on voit bien White, Aquamarine, Coral
    Sur Delphi XE7, cela provoque des erreurs à l'ouverture, mais tout est rouge aussi

    En fait, en supprimant, les "Materiel" c'est les TCube qui sont Rouge pourtant pas de trace de propriété Color
    La texture est appliqué malgré le tout Rouge
    J'ai ajouté d'autres TCube, TSpehre, ils sont Rouge par défaut et ignore les "Materiel" que l'on peut leur affecter
    Dans XFM, je n'ai rien trouvé pouvant mettre du Rouge

    Suffit de modifier "Lumiere" de Directional en Point pour que tout soit Vert et en Spot pour que tout soit Bleu !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonjour ShaiLeTroll,

    Le tutoriel a été fait sous Delphi 10 Seattle Pro. Depuis je suis passé à Berlin et tout récemment à l'update 1 de Berlin (toujours la version Pro). Je n'ai pas les erreurs que tu indiques. Il est vrai que je n'ai pas testé avec des versions antérieures de Delphi.

    Tu as la version gratuite de Delphi Berlin ? C'est la starter edition non ? Elle intègre FMX ?
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    C'est ça, la version Startex, oui elle inclus FMX, justement pour les projets type Tethering

    En changeant la Lumiere et plusieurs autres TLigth, j'arrive à un aspect bleu-violet pour la table et bleu-ciel pour les palets !
    Peut-être la version starter limité en effet visuel (ou ma pauvreté en Carte Graphique)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    C'est ça, la version Startex, oui elle inclus FMX, justement pour les projets type Tethering
    Je ne le savais pas : je croyais que FMX n'était présent qu'à partir de la version Pro. D'ailleurs, pour être précis, je dispose de Delphi Berlin update 1 en version Pro + le plugin pour le développement mobile.

    Le petit jeu fonctionne bien sous Windows, MAC OS et Android mais je n'ai pas testé sur IOS car je n'ai pas de périphérique sous cet OS.
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  9. #9
    Responsable Lazarus & Pascal

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Points : 20 855
    Points
    20 855
    Billets dans le blog
    84
    Par défaut
    J'utilise la version Berlin starter et je n'ai aucun problème d'affichage sur W10.
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  10. #10
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    En fait, en supprimant, les "Materiel" c'est les TCube qui sont Rouge pourtant pas de trace de propriété Color
    La texture est appliqué malgré le tout Rouge
    J'ai ajouté d'autres TCube, TSpehre, ils sont Rouge par défaut et ignore les "Materiel" que l'on peut leur affecter
    Dans XFM, je n'ai rien trouvé pouvant mettre du Rouge

    Suffit de modifier "Lumiere" de Directional en Point pour que tout soit Vert et en Spot pour que tout soit Bleu !
    Il y a 3 types de "material" :
    - le TColorMaterialSource est le plus simple : il permet d'appliquer une simple couleur à l'objet 3D. Par défaut, cette couleur est rouge. Je pense qu'à la création d'un objet 3D, même si on ne lui affecte pas un "material", FMX doit associer à l'objet un material TColorMaterialSource par défaut. D'où la couleur rouge.
    - le TTextureMaterialSource : permet d'appliquer une texture à l'objet.
    - le TLightMaterialSource : permet de paramétrer la manière dont l'objet va réagir à la lumière. On peut appliquer également une texture (c'est ce qui est fait dans le tutoriel pour dessiner la table de jeu).

    L'objet "lumiere" de type TLight est l'objet qui permet d'éclairer la scène 3D. On dispose de 3 types de lumière (directionnelle, spot ou point). On peut évidemment choisir la couleur de la lumière.

    Le rendu final tient compte de tous ces éléments pour dessiner la scène. Sur mes machines de test PC (carte graphique ATI), le Mac (cpu graphique Intel intégré au processeur i5) et Android (puce Adreno 320), le rendu et les couleurs sont identiques. Sur Android, avec le paramétrage de vitesse par défaut, c'est moins rapide que sur le PC. Je pense que c'est du au fait que le smartphone malgré son écran 5 pouces est en full hd alors que sur le pc (en mode fenétré par défaut) le rendu se fait en 540x345. De plus, je pense que le cpu du pc est plus puissant .
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    J'utilise un Core i3 - 3.3 Ghz, la carte graphique intégré c'est une Intel HD Graphics dans un DELL Vostro all in one
    DirectX 11 ( celui par défaut de Seven )
    Je pense que cela vient de là, un problème lié à mon poste !

    J'ai compilé sur mon poste, passé le programme à un collègue qui n'a pas Delphi et les couleurs ne sont pas bonnes
    Il a aussi un all in one mais en i5 !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #12
    Membre éprouvé
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Points : 1 072
    Points
    1 072
    Par défaut
    Bonjour à tous,

    j'ai téléchargé et compilé le projet sous Delphi Berlin 10.1 Starter ...
    le tout sans aucun soucis de couleur ou autre problème décrit par ShaiLeTroll.
    le jeux fonctionne bien ... Merci à l'auteur pour cet excellent exemple

    Matériel: Windows Seven 32-Bit avec un vieux AMD 64 3800+ 2.40 GHz et une GeForce GT 230 !!!

  13. #13
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    J'utilise un Core i3 - 3.3 Ghz, la carte graphique intégré c'est une Intel HD Graphics dans un DELL Vostro all in one
    DirectX 11 ( celui par défaut de Seven )
    Je pense que cela vient de là, un problème lié à mon poste !

    J'ai compilé sur mon poste, passé le programme à un collègue qui n'a pas Delphi et les couleurs ne sont pas bonnes
    Il a aussi un all in one mais en i5 !
    sous Windows, tu as quelques variables globales sur lesquelles tu peux tenter de jouer

    http://docwiki.embarcadero.com/Libra...balUseDirect2D
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  14. #14
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    Je vous remercie et je suis flatté de vos retours positifs sur le tutoriel. J'ai uploadé une autre version des sources : la raquette du joueur peut évoluer dans une zone (avant/arrière (axe Y) en plus du droite/gauche (axe X) déjà implémenté). Vous pouvez télécharger cette nouvelle version à cette adresse :
    http://gbegreg.developpez.com/tutori...ongBis_src.zip

    A noter : il ne sera toutefois pas possible de donner plus de vitesse au palet ou de faire des amorties

    Techniquement, j'ai ajouté :
    • un TPLane pour matérialiser la limite de la zone dans laquelle la raquette du joueur peut évoluer. J'ai associé à ce TPlane un nouveau TLightMaterialSource avec une couleur "Diffuse" Chocolate (pour rester dans le ton de la table de jeu). Le TPlane est cloné (tout comme la raquette) dans la procédure initialiserPlateau afin de matérialiser la zone de jeu de l'adversaire. Attention, l'IA n'est pas modifiée et la raquette gérée par l'ordinateur se déplacera toujours uniquement sur l'axe X).

    • Dans l'événement OnMouseDown de la raquette du joueur, lors de la récupération de la position de la raquette, on prend en compte en plus la position sur l'axe Y (Point3D(1,0,0) remplacé par Point3D(1,1,0))

    • Dans l'événement OnMouseMove de la raquette du joueur, même chose que précédemment, on prend en compte en plus la position sur l'axe Y (Point3D(1,0,0) remplacé par Point3D(1,1,0)) et on ajoute les contrôles de la nouvelle position par rapport à la limite de zone qui s'étend maintenant aussi sur l'axe Y :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
       
      if Point.y > 19 then Point := Point3D(point.x,19,point.z);
      if Point.y < 12 then Point := Point3D(point.x,12,point.z);

    • Enfin, dans l'événement OnMouseUp, on repositionnait la raquette au centre sur l'axe X et bien là, en plus, on la remet à sa position initiale sur l'axe Y :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      raquetteJoueur.AnimateFloat('Position.Y',19);

    Avec ces petites modifications, le jeu ressemble un peu plus à un jeu auquel j'ai joué enfant sur Atari ST : Shufflepuck Cafe... nostalgie Ça me donne peut être une idée pour un prochain tutoriel : un petit jeu de type "The Light Corridor" (qui était aussi sur ST et Amiga si ça parle à certains...).

    Je n'ai pas eu l'occasion encore d'utiliser les fonctionnalités de "Tethering". Est ce que ces dernières permettraient d'ajouter la possibilité de jouer à deux humains sur deux machines distinctes (PC/PC, PC/Mac, PC/Android...) ? Je pense que ça pourrait être un bon complément au tutoriel...
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  15. #15
    Futur Membre du Club
    Femme Profil pro
    dev
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    sous Windows, tu as quelques variables globales sur lesquelles tu peux tenter de jouer

    http://docwiki.embarcadero.com/Libra...balUseDirect2D
    Bonjour,

    Nous aussi on a des problèmes de couleur.
    L'affichage des couleurs est correct dans l'EDI Delphi mais quand on lance l'application, tout est rouge. On a fait le test sur un autre PC qui a une autre carte graphique et la tout est ok.
    J'ai essayé de modifier les variables globales ci dessus mentionnées : rien n'y fait.
    Le pc sur lequel on rencontre des problèmes : DELL optiflex 790 / windows 10 Enterprise 64 bits / Intel core i5-2400 CP @ 3.10 GHz/ 8 Go RAM / Intel HD Graphics / Direct X 11.1 ...
    Si quelqu'un a trouvé une solution, ça nous intéresse

    Chantal

  16. #16
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Comme évoqué, je n'ai pas chez moi de problème de couleur... Ça va être difficile pour diagnostiquer. Ce que je ne comprends pas dans votre cas, c'est que dans l'IDE, vous avez les bonnes couleurs et pas à l'exécution.
    On peut peut être essayer de faire un essai sans la source de lumière et les TLightMaterialSource.
    • Si vous désactivez l'objet TLight "lumiere" en décochant la propriété Enabled.

    • Ensuite, remplacez les TLightMaterialSource par des TColorMaterialSource.

    • Choisissez les couleurs de votre choix et affectez les aux différents objets 3D (la table de jeu (base, bordDroit, bordGauche), à la raquette et à la balle).


    Exécutez le jeu et voyez si vous avez les bonnes couleurs. Si c'est bon, vous pourrez refaire un nouveau test avec les mêmes manipulations en utilisant cette fois les "material" par des TTextureMaterialSource. Vous devrez affecter des images de votre choix à ces textures. Si ça marche comme ça, que les textures apparaissent bien, il y a de forte chance que ça soit la gestion de la lumière qui n'est pas correctement prise en charge correctement.

    Je suis en train de préparer un autre tutoriel avec un remake d'un autre jeu (The Light Corridor). Ce projet est loin d'être terminé (je suis parti du projet du jeu de Pong) mais j'ai mis les sources (en l'état) à cette adresse : gbegreg.developpez.com/tutoriels/delphi/firemonkey/FMXCorridor/FMXCorridor.zip
    Il n'utilise pas de lumière pour le moment. Voici une capture d'écran de ce nouveau projet (le projet n'est pas terminé j'insiste : la balle n'est pas en mouvement, elle passe à travers les obstacles et à la fin du niveau on ne revient pas à l'accueil. En revanche, la raquette de l'utilisateur est opérationnelle, on se déplace dans le niveau et certains obstacles sont animés) :
    Nom : capture1.png
Affichages : 1529
Taille : 7,0 Ko.

    A l'occasion, si vous testez ce nouveau projet, avez vous les couleurs similaires à la capture d'écran ?
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  17. #17
    Futur Membre du Club
    Femme Profil pro
    dev
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Bonjour Gregory,

    Merci pour votre aide.

    Oui il semblerait bien que cela provienne des TLight.
    Les TColorMaterialSource et TTextureMaterialSource fonctionnent très bien.

    Du coup y aurait-il des pistes pour corriger le problème ? (driver carte graphique ? ...)

    Chantal

  18. #18
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonjour Chantal,

    Sur les forums d'Embarcadero, j'ai trouvé un sujet qui parle d'un problème avec les TLight avec certaines cartes graphiques : http://qc.embarcadero.com/wc/qcmain.aspx?d=115443.
    Ça date de 2013 avec Delphi XE3 mais c'est peut être une piste à explorer. Il semble qu'il faille ajouter les lignes suivantes dans le source du projet (apparemment surtout la ligne indiquée en gras) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fmx.types.GlobalDisableFocusEffect:= true;
    fmx.types.GlobalUseDirect2D:= false;
    fmx.types.GlobalUseHWEffects:= true;
    fmx.types.GlobalUseDX10Software:= true;
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  19. #19
    Futur Membre du Club
    Femme Profil pro
    dev
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par gbegreg Voir le message
    Bonjour Chantal,

    Sur les forums d'Embarcadero, j'ai trouvé un sujet qui parle d'un problème avec les TLight avec certaines cartes graphiques : http://qc.embarcadero.com/wc/qcmain.aspx?d=115443.
    Ça date de 2013 avec Delphi XE3 mais c'est peut être une piste à explorer. Il semble qu'il faille ajouter les lignes suivantes dans le source du projet (apparemment surtout la ligne indiquée en gras) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fmx.types.GlobalDisableFocusEffect:= true;
    fmx.types.GlobalUseDirect2D:= false;
    fmx.types.GlobalUseHWEffects:= true;
    fmx.types.GlobalUseDX10Software:= true;

    Oui j'avais déjà essayé de modifier ces variables mais malheureusement cela ne change rien
    je vais continuer mes investigations ...

  20. #20
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 658
    Points : 3 599
    Points
    3 599
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    Citation Envoyé par chantal04 Voir le message
    Oui j'avais déjà essayé de modifier ces variables mais malheureusement cela ne change rien
    je vais continuer mes investigations ...
    Ce qui me parait curieux dans votre cas, c'est que vous indiquez que dans l'IDE les couleurs sont bonnes... S'il y avait un problème de carte graphique ou de drivers, je pense que les couleurs seraient déjà mauvaises dans l'IDE
    D'après ce que j'avais compris du message de ShaiLeTroll, je pense que lui avait déjà de mauvaises couleurs dans l'IDE.
    Je crains qu'une mise à jour éventuelle de vos drivers de carte graphique ne change rien.

    Le lien que j'ai fourni date de la version XE3 de Delphi. En regardant dans l'aide de la version Berlin update 2, certaines de ces variables sont marquées obsolètes. Par exemple, GlobalUseDX10Software est dépréciée et on doit utiliser à la place GlobalUseDXSoftware qui est à False par défaut. De même, la variable GlobalUseHWEffects est marquée deprecated mais il ne semble pas avoir de remplaçant (en tout cas, l'aide ne le précise pas). Cette dernière permettait d'utiliser "l'accélération matérielle quand c'est possible" (toujours d'après la doc). Du coup, peut être que GlobalUseDXSoftware suffit maintenant et qu'il ne soit pas nécessaire de trouver la bonne combinaison des valeurs de ces différentes variables.

    Après ce qui me gène un peu avec cette variable c'est que, d'après son nom, elle concerne DirectX. Du coup, il faut peut être dans le code conditionner sa valorisation aux cibles Windows. En effet, FireMonkey utilise DirectX pour les cibles Windows mais OpenGL pour les autres OS. D'ailleurs, c'est peut être parce que c'est OpenGL qui est utilisé sous Mac OS que sur mon mac équipé d'une puce graphique Intel HD 5000 les couleurs sont bonnes.
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/07/2016, 15h55
  2. Apprendre à créer un jeu de plateformes 2D avec Godot
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 24/03/2016, 22h55
  3. Créer une base de données avec Delphi
    Par louise70 dans le forum Bases de données
    Réponses: 6
    Dernier message: 07/05/2013, 13h01
  4. comment créer un client OPC (DCOM) avec delphi
    Par aladin95 dans le forum Automation
    Réponses: 3
    Dernier message: 18/12/2011, 18h56
  5. comment créer une base de donnée avec delphi
    Par innocent672 dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/10/2010, 11h00

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