Aller au menu - Aller au contenu

[Moteur de jeu | C++] 2D BytzEngine

Un moteur de jeu 2D en C++

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1  2  3  Suivante
Hors ligne Furanku # Posté le 12/04/2010 à 14:36:09
Avatar

Image utilisateur





Image utilisateur


Je suis étudiant en management informatique, à l'école 4IM sur Marseille.
C'est donc pour appliquer ce que j'apprends en cours (gestion de projet, modélisation...) que j'ai décidé de me lancer. Au début je souhaitais concevoir un shoot'em up à la Space Invaders grâce à la SFML et d'autres librairies. Puis je me suis dis que tant que j'y étais, autant concevoir un moteur de jeu réutilisable. De plus il existe peu de moteurs 2D, à l'inverse de moteurs 3D.

J'ai donc débuté une analyse (UML) afin de débuter sur des bases solides.




Image utilisateur


Comme dit plus haut, il existe peu (à ma connaissance) de moteur de jeu 2D complet. Ce que je trouve assez dommage dans le sens où nombre de jeux 2D sont bien supérieurs à des jeux 3D (Braid, Trine, World of Goo...). Le but de 2D BytzEngine est donc de fournir tout le nécessaire au développeur pour créer un jeu 2D le plus rapidement possible.

Il existe bien des librairies 2D (SFML, SDL), mais elles sont plus orientées multimédia en général. Alors qu'un moteur de jeu doit fournir une IA et tout un ensemble de gestionnaires.
Le tout sera bien sûr multiplateforme.



Les librairies utilisées


Afin de me concentrer sur la conception générale du moteur, je me baserais sur les librairies suivantes pour commencer :
  • Gestion graphique / Fenêtres : SFML
  • Physique : Box2D
  • Audio : cAudio (OpenAL)
  • Réseau : RakNet
  • Vidéo : à définir



Fonctionnalités


  • Système de Scene / Node / Entity pour gérer votre monde 2D (système de base similaire aux moteurs 3D)
  • Système de calque sur vos Scene pour un effet de profondeur
  • Deux modes de représentation graphique : 2D classique et 2D isométrique
  • Gestionnaire d'animations
  • Effets graphiques avancés (shaders)
  • Effets physiques 2D
  • GUI scriptée
  • IA de base (pathfinding etc)
  • Possibilité de scripter votre monde
  • Et bien d'autres encore...


Une liste des fonctionnalités sera bientôt mise en ligne.



Livrables


Le projet fournira, bien entendu, le moteur de jeu en lui même. En supplément seront intégrés :
  • Des démos d'utilisation
  • Un éditeur de script
  • Un World Editor




Liens


Blog de développement : http://www.bytzcat.com/projects/2dbe/blog/
Twitter : http://twitter.com/2dbe
Dépôt SVN : https://www.assembla.com/code/2dbe/subversion/nodes


Le topic servira à vous avertir de l'avancement du projet, à en discuter (demande d'avis, conseils, critiques...) et à répondre à toutes vos questions :)
Édité le 27/04/2010 à 11:06:32 par Furanku

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Publicité # Posté le 12/04/2010 à 14:36:09

Hors ligne feda12 # Posté le 12/04/2010 à 14:46:22
Avatar

Ville : Lorient
Pays : France métropolitaine

Projet intéressant, mais sera t-il multiplateforme ? :)

Je crée vos composants Qt, contactez moi.
PeopleView
 
Hors ligne Furanku # Posté le 12/04/2010 à 14:56:48
Avatar

Oui bien sûr. Les librairies utilisées le sont, et je vais faire en sorte que le moteur en lui-même le soit.

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne feda12 # Posté le 12/04/2010 à 14:59:09
Avatar

Ville : Lorient
Pays : France métropolitaine

C'est une bonne chose alors ;) Bon courage en tout cas :)

Je crée vos composants Qt, contactez moi.
PeopleView
 
Hors ligne 1vrai0 # Posté le 13/04/2010 à 02:19:57
Avatar

Salut, c'est super comme projet, et en plus il sera multi-plateforme! Est-ce que c'est déjà bien avancé? Est-ce que tu travaille seul? Peut importe, j'ai hâte de le téléchargé! Bonne chance, À+

Image utilisateur
 
Hors ligne Furanku # Posté le 13/04/2010 à 11:49:37
Avatar

Pour le moment, je n'ai pas encore touché à une seule ligne de code.
J'en suis à l'analyse fonctionnelle avec la modélisation en parallèle. Au début de début donc ^^

Sinon pour le moment je suis seul et préfère le rester. C'est plus simple à gérer, même si en contrepartie je perds en objectivité (d'où l'intérêt aussi de poster ici).

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne Furanku # Posté le 14/04/2010 à 22:51:45
Avatar

Ouverture d'un dépôt SVN sur Assembla, le temps que le projet avance bien.
Dans un premier temps seule la documentation sera disponible (analyser avant de coder ! ;) ).

Au passage, le post de présentation a été mis à jour.

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne shihico # Posté le 15/04/2010 à 23:53:34
I ♥ linux, I think.
Avatar

Ville : Crest
Pays : France métropolitaine

Projet très interessant, c'est vrai qu'il n'y a pas beaucoup de moteurs complets 2D. Bon courage pour la suite, je te suis de près. :)
 
Hors ligne Furanku # Posté le 16/04/2010 à 17:06:59
Avatar

Merci :)
Si vous avez des idées, je suis preneur.

Je fais avancer le CdC (nom un peu fourre tout, car ce n'en est pas vraiment un) dès que j'ai du temps de dispo.

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne Furanku # Posté le 22/04/2010 à 15:07:32
Avatar

Un peu de nouvelles.

Le CdC n'avance pas en ce moment. Déjà parce que je n'ai pas trop envie de faire du Word ces derniers temps, et aussi parce que je commence à me pencher sur le code. Etant seul, je peux me permettre d'alterner entre rédaction et programmation. Toutefois j'ai pas mal de feuilles avec des schémas, analyses... me restera plus qu'à les mettre au propre :)

Sinon j'ai débuté la programmation. Pour le moment je m'occupe de la gestion des caméras, scènes, nodes et entités. Ce qui correspond aux bases de la partie graphique, et permet de poser celles de la partie système (Core). Une fois ceci fait, je débuterais l'intégration avec la SFML puis un projet de test.

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne shihico # Posté le 22/04/2010 à 16:27:24
I ♥ linux, I think.
Avatar

Ville : Crest
Pays : France métropolitaine

Franchement j'ai hâte de voir ce que ça va donner. ^^
Édité le 22/04/2010 à 16:27:39 par shihico
 
Hors ligne qehedr # Posté le 22/04/2010 à 16:56:11
Avatar

C'est un projet intéressant, et même plus que ceux de jeu 3D en réseau car il à de meilleures chances d'aboutir et qu'il servira à d'autres.

PS: je suis en train de perfectionner une sur-couche de la SDL en C++ avec gestion du temps, des animations, images, entrées clavier-souris orientée jeu 2D. Si ça peut aider, je peux participer pour le code.
Hors ligne Furanku # Posté le 22/04/2010 à 17:46:15
Avatar

Citation : shihico
Franchement j'ai hâte de voir ce que ça va donner. ^^

Autant le dire franchement, il faudra être patient ^^
Mais pour montrer l'avancement, je mettrais en ligne un site sur lequel je diffuserais des vidéos de démonstration et des news à intervalle régulier.


Citation : qehedr
C'est un projet intéressant, et même plus que ceux de jeu 3D en réseau car il à de meilleures chances d'aboutir et qu'il servira à d'autres.

PS: je suis en train de perfectionner une sur-couche de la SDL en C++ avec gestion du temps, des animations, images, entrées clavier-souris orientée jeu 2D. Si ça peut aider, je peux participer pour le code.

Merci :)
Je ne sais pas si il a de meilleures chances d'aboutir, mais j'espère bien qu'il servira à d'autres. C'est aussi pour ça que je prend le temps de développer, afin d'avoir un code propre et robuste (pour mon niveau de connaissance), qui puisse être facilement lu et repris.
Sinon merci pour ta proposition, mais je préfère travailler seul jusqu'à la sortie de la v1. Non pas par orgueil, mais parce que je pense qu'il est plus facile de travailler à plusieurs en partant sur une base commune.


Edit : maj du SVN avec les premiers fichiers sources (ici).
Édité le 22/04/2010 à 20:28:13 par Furanku

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne Davidbrcz # Posté le 23/04/2010 à 00:01:32
Geek un jour, geek toujours !
Avatar

Il est tard, j'ai parcouru le code très rapidement.
* récupération des exceptions par copie, pas bien.
* pas d'utilisation des listes d'initialisation pour les membres
* singleton pour le logger, moche
* des fonctions elliptiques pour le log , OMFG, tu es fou ?
* gestion des pointeurs à la main, sympa pour la sécurité face aux exceptions !

Les plus
* Utilisation de la S(T)L
Édité le 23/04/2010 à 00:03:14 par Davidbrcz

Partager grâce à l'open source et aux logiciels libres.

Mes articles
Bibliothèques C++ et celles orientées jeux, FAQ C++
 
Hors ligne Furanku # Posté le 23/04/2010 à 00:45:37
Avatar

Citation : Davidbrcz
Il est tard, j'ai parcouru le code très rapidement.
* récupération des exceptions par copie, pas bien.
* pas d'utilisation des listes d'initialisation pour les membres
* singleton pour le logger, moche
* des fonctions elliptiques pour le log , OMFG, t u es fou ?
* gestion des pointeurs à la main, sympa pour la sécurité face aux exceptions !

Les plus
* Utilisation de la S(T)L

C'est exactement le genre de remarques que j'attendais :)

Pour le logger et les exceptions, je me suis pour le moment basé sur le code de Laurent Gomila (du moteur Yes Engine) - pour ne pas dire copier. Mais c'est provisoire, je ne comptes pas les laisser telles quelles. Et tes remarques confortent cette idée.
Les listes d'initialisation, c'est purement et simplement un oubli.
La gestion des pointeurs manuelle. J'ai pensé à utiliser les boost::shared_ptr, mais j'hésite encore à créer une classe smart-pointer maison. A voir si réinventer la roue est nécessaire.

Sinon, que veux tu dire par "fonctions ellptiques" (première fois que j'entend ce terme) ?
De même pour les exceptions récupérées par copie, je ne comprend pas tout à fait. Si tu peux m'éclairer, je suis pas contre ;)


Pour précision, je procède comme suit au niveau développement:
  • 1. "Jetée" des bases du code
  • 2. Tests "grossiers"
  • 3. Optimisation (ce que je ferais dès demain pour ces classes)
  • 4. 2e phase de tests
  • 5. Début d'une autre partie
C'est peut-être un peu long, mais je pense qu'on peut obtenir un code stable de cette manière (sorte de cycle en spirale). Je ne connais pas encore trop de cycles de développement que je pourrais appliquer.


Merci pour ton coup d'oeil sur le code. Il n'y a que comme ça que je m'améliorerais et que je pourrais faire quelque chose de stable et propre :)

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne Davidbrcz # Posté le 23/04/2010 à 10:35:29
Geek un jour, geek toujours !
Avatar

Citation
Pour le logger et les exceptions, je me suis pour le moment basé sur le code de Laurent Gomila (du moteur Yes Engine) - pour ne pas dire copier. Mais c'est provisoire, je ne comptes pas les laisser telles quelles. Et tes remarques confortent cette idée.

Je n'ai jamais trouvé de solution satisfaisante pour les logs en C++ "pur". La programmation par aspect est bien sur ce point, mais pas assez stable en C++ (à mon gout) pour être utilisée.


Citation
La gestion des pointeurs manuelle. J'ai pensé à utiliser les boost::shared_ptr, mais j'hésite encore à créer une classe smart-pointer maison. A voir si réinventer la roue est nécessaire.

Pourquoi réinventer la roue et propager le NIH (not invented here). Pourquoi ne pas utiliser les smart_ptr de boost qui ont été testés, validés par une pléthore de programmeurs.

Citation
Sinon, que veux tu dire par "fonctions ellptiques" (première fois que j'entend ce terme) ?


Possible que je me sois trompé dans le nom (il était tard). En gros, je parle des fonctions utilisant .../va_arg & co. Pas sécurisée, ne supporte que les PODs, ne respecte par le DRY (don't repeat yourself).


Citation
De même pour les exceptions récupérées par copie, je ne comprend pas tout à fait. Si tu peux m'éclairer, je suis pas contre ;)

Une exception à grande chance de se produire quand tu sera sans mémoire vive. A ce moment, une exception est produite si tu tente de construire un objet et qu'il n'y a plus assez de mémoire. Récupérer l'exception par copie implique (comme le nom l'indique), une copie donc une allocation dynamique de mémoire alors qu'il n'y a déjà plus de mémoire. Boom.


Citation

Pour précision, je procède comme suit au niveau développement:
  • 1. "Jetée" des bases du code
  • 2. Tests "grossiers"
  • 3. Optimisation (ce que je ferais dès demain pour ces classes)
  • 4. 2e phase de tests
  • 5. Début d'une autre partie



Les lois immuables du dev: http://home.swbell.net/mck9/cobol/cobiron.html
Ce qui permet au final d'arriver à cette réflexion (pas de moi, honteusement pompé sur le net)
Citation
Comme on dit, avant de faire un chef d'oeuvre, il faut faire un brouillon
Personnellement, je fais la plupart de mes dev au moins deux fois :
- La première fois, je bacles le tout le plus vite possible, pour avoir une première version qui fait vaguement ce qu'elle est censée faire. Ca permet d'affiner l'analyse, d'avoir été confronté une fois à tout les problèmes, d'avoir une meilleure compréhension du problème global.

- Puis une fois que j'ai quelque chose qui tourne, je le montre à mes utilisateurs, je leur fait tester, voir ce qui leur convient, ce qui ne leur plait pas...

- Enfin, je refais tout proprement. Comme cette fois ci, les problèmes ont tous été bien identifiés par la première réalisation, que les utilisateurs ont compris ce dont ils ont besoin et ce qu'ils veulent, ça va finalement très vite.


Donc en gros, à la phase 2, comme tu es ton propre client, ca revient à créer un jeu pour tester le moteur et voir ce qu'il te manque/plait ou non / ...

Sinon, l'optimisation prématurée est source de mal. Tu vas perdre du temps à optimiser une classe alors que si ca se trouve tu vas la refaire complètement dans 1 mois voire la supprimer.

Partager grâce à l'open source et aux logiciels libres.

Mes articles
Bibliothèques C++ et celles orientées jeux, FAQ C++
 
Hors ligne Furanku # Posté le 23/04/2010 à 23:00:04
Avatar

J'ai tenu compte des tes remarques et donc retouché les classes, ainsi qu'intégré les smart-pointers (je l'avoue ça facilite la tâche).
Le SVN a donc été mis à jour. Des modifications aparassent : le CameraManager va disparaitre, ses méthodes feront parties du SceneManager. Les classes de log sont mises de côté pour le moment.

Toujours prêt à recevoir des critiques sur mon code et la conception ;)

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 24/04/2010 à 13:24:26
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

C'est un projet intéressant, d'autant plus que j'ai le même projet (en un peu plus complexe, mais on est 3).

Si tu as besoin d'aide pour la GUI, tu peux essayer de regarder sur la notre ;) (je te la donne par mp si tu me le demandes).


#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Furanku # Posté le 24/04/2010 à 13:49:17
Avatar

Merci ;)
Pour la GUI je n'en suis pas encore là. Ce n'est pas l'élément le plus important.

Sinon je suis en train de voir pour créer un arbre n-aire à l'aide Boost Graph, pour gérer les Node d'une Scene (avec RootSceneNode comme racine). Pas évident ^^
Oui je me base pas mal sur Ogre3D, je ne le cache pas. Mais bon ce très loin d'être aussi poussé.

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 24/04/2010 à 16:57:55
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

Comment comptes-tu gérer l'affichage ?
Par entité (ex: on dessine un arbre d'un coup)
Par tile
Par image complete d'une map
?
Et pour la physique ?
Comptes-tu rajouter un support de collision par pixel ?

Si je ne m'abuse, on va etre 3 concurrents (avec l'ungine).

Édité le 24/04/2010 à 16:58:49 par danman

#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Furanku # Posté le 24/04/2010 à 18:17:07
Avatar

Scène : correspond au monde (la map donc dans ton cas), construite à base de tiles, d'un background, d'une ambient light... ;
Entité : chaque entité sera associée à un (ou des) sprite(s) ;

Caméra : affiche une portion de la Scène.
Node : points invisibles composant une Scène, auxquels s'attachent des Entités et des Caméras.

Tout est rendu dans une RenderWindow.
Pour la physique, j'utiliserai Box2D.


Et il n'y a pas de concurrence, au contraire ;)
D'ailleurs vous n'avez pas de topic sur le SdZ ?
Édité le 24/04/2010 à 18:17:59 par Furanku

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 24/04/2010 à 22:17:40
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

non, mais on a un code.google et un topic sur le forum SFML.

Apparement tu n'as pas les meme buts que nous pour le moteur 2d, tant mieux :) . (le tiens est plus léger).


et sinon pourquoi utiliser racknet, alors que tu as SFML ?

pour les pointeurs intelligent, si tu es avec GCC 4.4, ils sont dans std ;) (ça te supprime une dépendance)


#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Furanku # Posté le 25/04/2010 à 00:16:54
Avatar

J'ai pensé à Racknet pour toutes les options qu'elle offre. Après c'est juste un repérage, je n'ai pas encore vu ce que donnait le module réseau de la SFML.

Je ne savais pas que les smart-pointer (autre que std::auto_ptr) étaient intégrés avec les dernières version de GCC.
Mais je reste sur Boost pour le moment, car je vais certainement utiliser d'autres librairies qui y sont contenues (Serialization...).

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne Orwel # Posté le 25/04/2010 à 00:51:35
Power-Kawa
Avatar

Joli projet.

J'ai une question : Que entend-tu par
->Possibilité de scripter votre monde
->GUI scriptée

Peut-être conte-tu utiliser un langage de script?
Ou alors faire le tien?

Je trouve que beaucoup trop de personne confonde l'informatique avec la magie :lol:
Image utilisateur
:-°
 
Hors ligne Furanku # Posté le 25/04/2010 à 01:22:12
Avatar

Par possibilité de scripter le monde, j'entend la possibilité d'ajouter des évènements sans toucher au code. Avec un éditeur (qui sera fournit) par exemple, ou bien manuellement et créant les fichiers nécessaires. Ce sera surtout utile avec le World Editor.
Par GUI scriptée, je pense à des interfaces comme dans WoW. On peut la modifier en éditant/créant les scripts, afin d'ajouter des addons au niveau interface.

Pour ça je pense m'orienter sur LUA qui a une communauté assez importante, est facile à prendre en main et à intégrer, et relativement souple :)
Édité le 25/04/2010 à 01:23:32 par Furanku

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 25/04/2010 à 14:18:46
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

bonne idée pour lua ;) .
la gui scripté ça n'a rien a voir, en gros tout ce que tu as a faire c'est de binder tes widgets avec lua.

sauf si tu comptes faire comme CEGUI (les widgets sont en xml).

#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Furanku # Posté le 26/04/2010 à 01:21:55
Avatar

Ça commence enfin à prendre forme !

Il est maintenant possible de créer une Scene, d'y créer des Node auxquels on peut attacher des objets (Camera pour le moment). Ce n'est certes que le début, mais ça avance.

J'ai aussi pensé à intégrer un système de calque pour les scènes afin de donner la possibilité d'avoir un effet de profondeur.
Il sera par exemple possible d'avoir une Scene en avant plan, où votre perso se déplace, et une en arrière plan ou vous pourrez voir d'autres entités se déplacer. Il faut voir ça comme un décor de pièce de théâtre en quelque sorte :)

Au passage, le SVN a bien sût été mis à jour. Mais j'en ai aussi profité pour mettre en ligne le blog du projet (le site suivra dès que possible).

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 26/04/2010 à 19:57:53
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

je passerais tester après mon brevet blanc ;) .

#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 
Hors ligne Furanku # Posté le 27/04/2010 à 01:24:37
Avatar

Tu auras vite fait le tour ^^

Sinon j'ai quelques soucis avec mes smart-pointers.
J'ai deux fonctions : attachObject et detachObject pour ajouter et enlever un objet d'un noeud. Pour l'ajout, pas de soucis même si je pense que le code puisse être optimisé (mais je verrais ça plus tard). Par contre, problème pour le détachement.

J'obtiens l'erreur suivante :

Code : Console
Assertion failed: px != 0, file extlibs/boost/smart_ptr/shared_ptr.hpp, line 418

Ce serait l'utilisation d'un shared_ptr non initialisé. Mais je ne vois pas à quel endroit...
Plutôt que de poser le code ici, voici les fichiers sources : Node.cpp et MovableObject.cpp.

Une fois ceci résolu, je débute les Entités ;)


Edit : problème résolu. C'était juste l'appel d'une fonction membre sur un pointeur NULL (dans le main.cpp). Une étourderie donc, mais qui montre que je devrais me pencher sur les exceptions.
Édité le 27/04/2010 à 10:56:05 par Furanku

Image utilisateurImage utilisateur

Liens : FAQ C++ | Références C++ | Doc SFML | Doc jQuery | Doc PHP
Image utilisateur Passez vos sujets en Résolu
 
Hors ligne danman # Posté le 27/04/2010 à 17:18:01
L'imagine + mieux que savoir
Avatar

Ville : Sathonay-village
Pays : France métropolitaine

bah, en trois semaine on fait des merveilles :p .

#LGDF: danman vaincra !
Des connaissances dans l'un ou l'autre domaine? Créez des articles rémunérés sur www.questmachine.org !

Image utilisateur


Pixel Conquest ... Join the battle.
Postez votre image !

 

Retour au forum "Présentation de vos projets" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx