Pages: 1
Apprenant pas mal sur le tas et avec quelques bouquins, j'ai quelques lacunes pour comprendre certains aspects du dev dans irrlicht. Ma question porte d'ailleurs principalement là dessus et sur le fait que j'ai tres peu d'xp en C++.
J'arrive a un moment ou je me dis que coder mon propre systeme de caméra devient urgent (j'arrive pas a me faire a la Maya, et la FPS n'est pas adaptée a ce que je veux faire). J'en viens donc a me dire qu'il me faudra faire une caméra bien a moi. Le feeling que je souhaiterai retrouver est celui de la camera de Warcraft III, qui serait adaptée au couple toolset/jeu sur lequel je suis en train de bosser.
Me voilà donc a parcourir le forum pour choper des snippets de camera, a voir comment ça fonctionne, tout ça tout ça. "Tout ça c'est bien joli" me dis je (oui parce que je me parle a moi meme souvent ) "mais comment je vais m'en demmerder maintenant que j'ai du code exploitable ?". Alors voilà une petite batterie de questions, dont les réponses sont surement triviales ou tres simples (mais bon, quand ça veut pas percuter, je percute pas )
Quelles sont mes alternatives pour implémenter ma caméra perso ?
>> dois-je implémenter la caméra en C++, recompiler irrlicht avec pour disposer des addCamSceneNodePerso() et autres joyeuseté, puis modifier le wrapper pour y acceder en C# ?
>> Faut il seulement faire une manip d'informagicien pour que ma cam C++ soit "utilisée" par irrlicht deja compilé (pas de recomp) puis faire les modifs du wrapper ?
>> Faire une manip d'archinformagicien (encore plus fort que l'informagicien) pour implémenter la cam en C# et profiter de la souplesse des dll et des bidules qui clignotent ?
>> D : la réponse D
merci par avance de vos réponses, indications, etc.
Dernière modification par Ravine (28-07-2007 12:53:13)
Hors ligne
Je connais pas trés bien le moteur 3d irrlicht.netcp mais ce que tu veux faire ne nécéssite pas d'être archipyroinformaticien.Je crois qu'il faut que tu fasses une classe dérivant de CameraSceneNode par exemple STRCameraSceneNodepuis que tu l'instancie grâce au SceneManager.
(enfin j'esperere que c'est comme ca)
Dernière modification par clemsye (28-07-2007 13:25:25)
Hors ligne
Non je me suis trompé ce n'est pas comme ca du tout,J'ai un lien expliquant comment il faut faire mais c'est en c++:
http://khayyam.developpez.com/articles/ … icht/#LI-1
En espérant que cela puisse te servir.
Dernière modification par clemsye (28-07-2007 13:37:44)
Hors ligne
je pensais bien a l'heritage dans ma tete, mais j'attends l'avis d'autres personnes avant de me lancer (DeusXL, si tu m'entends ).
En tout cas, merci pour le lien. J'avais pas été voir cette rubrique depuis un moment, et je me rends compte que j'ai eu tort. Y'a de plus en plus de matos, et j'ai de la lecture en retard.
Hors ligne
Je poste en fait ce message parce que j'ai deja recherché sur les forums irrlicht.netCp et sur le forum off, sans succes. Qui plus est, sur #irrlicht, je n'ai pas réussi d'avoir de réponse claire de la part des intervenant, l'un déclarant que je devais tout me retaper, l'autre non, que les interfaces ne sont pas accessibles sur le wrapper blablabla. Donc si vous avez plus d'infos, je suis preneur.
Hors ligne
C'est exactement comme un custom scene node puisque... c'en est un.
Au lieu de dériver de ISceneNode tu dois dériver de ICameraSceneNode (pas vérifié que cette interface soit bien dans IrrlichtNetCP.Inheritable, mais le contraire m'étonnerai)
http://irrlichtnetcp.sourceforge.net/in … cene_Nodes
Au pire tu as beaucoup d'exemples de caméra de RTS en C++ sur le forum officiel.
Hors ligne
Petit essai rapide, pas d'interface ICameraSceneNode de dispo. Mais comme DeusXL a pensé le NetCp dans l'optique de pouvoir utiliser les CustomSceneNode, peut etre que par là...
Je testerai surement plus tard. Si vous avez un eclair de génie pendant ce temps, je vous en prie.
*pouf edit reflexion*
Mais je pense a ça là pouf pouf comme ça. Je suis pas obligé de hériter d'une interface non ? Je peux tout a fait hériter d'une classe en théorie... bon, reste plus qu'a checker les portées des membres de CameraSceneNode, et je reviens.
Dernière modification par Ravine (29-07-2007 19:40:40)
Hors ligne
A première vue, hériter de CameraSceneNode ne posera pas de problèmes.
Hors ligne
Alors, des news depuis mes derniers essais.
On ne peut pas hériter directement de CameraSceneNode. Je vais citer directement Lester du forum .Net CP qui explique aça bien mieux que moi. (pour info, on ne peut pas directement hériter des classes car leurs constructeurs necessitent un pointeur. Si j'ai bien tout pigé, ça vient de l'utilisation des factory (implémentation du pattern ?). Je vais m'arreter de causer technique, vu que ça dépasse mes compétences a l'heure actuelle.
Hell you're right! The scenenode classes are just like sealed for us since they are hardly tied to the native functions in IrrlichtW.dll. The only class you can inherit from is ISceneNode. Thus you can wrap over any scenenodes you need with the custom scene node thanks to the Irrlicht's architecture. For example you can create a custom billboard scene node, which creates a standard billboard internally.
le post ici, dernier post.
Me voilà donc parti sur les CustomSceneNode (décidement, merci Aranoth ) et heriter de ISceneNode. Bon, me reste encore du taf. J'y retourne donc .
Hors ligne
Ah bah ouais, le IntPtr...
M'enfin, ré implémenter toute la CameraSceneNode c'est...
Pour te simplifier la tache tu peux faire un CustomSceneNode contenant une CameraSceneNode qu'il mettrait à jour de lui même.
Du genre :
public class MyCameraSceneNode : ISceneNode
{
private CameraSceneNode Camera = null;
}
Hors ligne
C'est ce que j'ai fait. J'ai arpenté le forum du .NetCP et j'ai utilisé la méthode décrite par Lester dans le post que je linkais un peu plus haut. C'est pas la solution qui parait evidente de prime abord, mais ça fonctionne, et je m'en sors pas trop mal pour l'instant avec. Bien evidement je ne réimplémente pas l'intégralité de la CamSceneNode, mais juste ce dont j'ai besoin.
Hors ligne
Pages: 1
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 81 invités en ligne Aucun membre connecté RSS Feed |