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

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
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
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;
}
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.

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