Bonjour tous le monde,
J'ai un petit problème avec CEGUI, J'ai suivit le tutoriel sur Ogre pour pouvoir bouger la souris voici le code de AppDemarrage.
AppDemarrage.h
AppDemarrage.cpp
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 #ifndef APPDEMARRAGE_H_INCLUDED #define APPDEMARRAGE_H_INCLUDED #include <Ogre.h> #include "InputListener.h" #include <OIS\OIS.h> #include <CEGUI.h> #include <RendererModules\Ogre\CEGUIOgreRenderer.h> class AppDemarrage { public: AppDemarrage(); ~AppDemarrage(); bool start(); protected: CEGUI::OgreRenderer* mRenderer; private: void createFrameListener(); void createScene(); bool mouseMoved(const OIS::MouseEvent &arg); bool mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id); bool mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id); CEGUI::MouseButton convertButton(OIS::MouseButtonID buttonID); InputListener *mInputListener; Ogre::Root *mRoot; Ogre::Camera* mCamera; Ogre::SceneManager* mSceneMgr; Ogre::RenderWindow *mWindow; }; #endif
Le truck c'est qu'il faut que j'arrive a faire appeler les méthode mouseMoved(const OIS::MouseEvent &arg), mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id), mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id), mais pour cela il faut que j'initialise arg, j'ai essayer de plein de façon mais je n'est jamais réussi.
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 #include "AppDemarrage.h" AppDemarrage::AppDemarrage() : mRoot(0), mSceneMgr(0), mWindow(0) { mRoot = new Ogre::Root("plugins.cfg", "ogre.cfg", "Ogre.log"); mSceneMgr = mRoot->createSceneManager("DefaultSceneManager", "Mon Scene Manager"); } bool AppDemarrage::start() { /... mRenderer = &CEGUI::OgreRenderer::bootstrapSystem(); CEGUI::Imageset::setDefaultResourceGroup("Imagesets"); CEGUI::Font::setDefaultResourceGroup("Fonts"); CEGUI::Scheme::setDefaultResourceGroup("Schemes"); CEGUI::WidgetLookManager::setDefaultResourceGroup("LookNFeel"); CEGUI::WindowManager::setDefaultResourceGroup("Layouts"); CEGUI::SchemeManager::getSingleton().create("OgreTray.scheme"); CEGUI::System::getSingleton().setDefaultMouseCursor("OgreTrayImages", "MouseArrow"); CEGUI::MouseCursor::getSingleton().setImage( CEGUI::System::getSingleton().getDefaultMouseCursor()); /... } void AppDemarrage::createFrameListener() { mInputListener = new InputListener(mWindow, mCamera, mSceneMgr); mRoot->addFrameListener(mInputListener); } bool AppDemarrage::mouseMoved(const OIS::MouseEvent &arg) { CEGUI::System::getSingleton().injectMouseMove(arg.state.X.rel, arg.state.Y.rel); return true; } bool AppDemarrage::mousePressed(const OIS::MouseEvent &arg, OIS::MouseButtonID id) { CEGUI::System::getSingleton().injectMouseButtonDown(convertButton(id)); return true; } bool AppDemarrage::mouseReleased(const OIS::MouseEvent &arg, OIS::MouseButtonID id) { CEGUI::System::getSingleton().injectMouseButtonUp(convertButton(id)); return true; } CEGUI::MouseButton AppDemarrage::convertButton(OIS::MouseButtonID buttonID) { switch (buttonID) { case OIS::MB_Left: return CEGUI::LeftButton; case OIS::MB_Right: return CEGUI::RightButton; case OIS::MB_Middle: return CEGUI::MiddleButton; default: return CEGUI::LeftButton; } } void AppDemarrage::createScene() { } AppDemarrage::~AppDemarrage() { OGRE_DELETE mRoot; OGRE_DELETE mCamera; OGRE_DELETE mSceneMgr; OGRE_DELETE mWindow; delete mInputListener; delete mRoot; }
Je devine déjà une réponse (il faut mettre ceci dans InputListener) oui je c'est mais d'abord je voudrait trouver comment initialiser arg.
Pouvez-vous m'aidez.
Merci d'avance.
Erwan28250
Partager