J'ai codé un petit éditeur de scène ainsi qu'un loader de scène.
■ L'éditeur de scènes.
Son fonctionnement en l'état est simple.
- On clique dans un espace 3D.
- On pose un cube, un cylindre, une sphère, un cone mais aussi un mesh après importation de celui çi.
- Un inspecteur permet de définir la position, la taille, les angles, la texture et de dire si l'entité est static ou pas.
- Des combinaison de touches permettent aussi de de procéder à ces modification.
Le tout est sauvegardé dans un fichier JSON.
■ Le loader de scène.
Le loader de scène permet de lire ce fichier JSON et de créer la scène.
Le principe est simple
Code : Tout sélectionner
;Load Scene
SceneLoad("demo0.json")
■ Un projet avorté.
En l'état ce projet est avorté car la taille du JSON résultant est énorme. De plus des fonctionnalités comme CatchTexture() ou CatchMesh() n'éxistant pas, je suis obligé de récréer les fichiers puis de les charger à nouveau pénalisant ainsi le chargements de ces datas.
C'est pour ces raisons que je ne vous présenterais pas l'éditeur de scènes. Je dois revoir ma copie.
Par contre je vous présente une démonstration que j'avais l'intention de présenté hors concours à l’occasion du 15eme anniversaire de PureBasic. La scène est un peu sobre car loin d'être terminée.
http://falsam.com/download/purebasic/serenity.zip (70 Mo environ - 2 ou 3 minutes de download)
Il n'y a pas d’exécutable.
N'oubliez pas de mettre un peu de son
■ Petite FAQ.
Comment je fais pour lancer la démo. ?
Chargez demo.pb dans votre éditeur et exécutez le.
Comment je me déplace ?
Utilisez les flèches de votre clavier pour vous déplacer.
Le code crash sous Windows 8 et Windows 10 ?
Si vous êtes sous Windows 8 ou Windows 10, il est possible que le code crash. Dans ce cas là, ajouter OpenGl dans les options de compilation.
- Meu Compilateur -> Options de compilation -> Bibliothéque sous-systéme: Tapez OpenGL - > Ok
Est ce que ce code est compatible avec la version 5.40 Beta ?
Non si vous utilisez une version Beta 1,2,3,4,5,6 et 7. Le code n'est pas compatible car la fonction EntityPhysicBody() n'existe plus dans ces versions que j'ai cité.
Dans ce cas il faut chercher EntityPhysicBody et remplacer chaque terme par CreateEntityBody
Si vous utilisez La version 5.40 Beta 8 alors le code fonctionne. Vous aurez quelques warning d'avertissement.
Puis je utiliser un pc en carton ?
Quelques lenteurs seront surement perceptibles et pourquoi pas des erreurs lors du chargement des datas.