Как изменить свойство Entity при наведении на него курсора мыши в Ogre3d?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как изменить свойство Entity при наведении на него курсора мыши в Ogre3d?

Сообщение Гость »


Я загрузил базовую модель куба при запуске приложения:

Entity* Cube = scnMgr->createEntity("box.glb"); CubeNode = scnMgr->getRootSceneNode()->createChildSceneNode(); CubeNode->attachObject(куб); CubeNode->setPosition(Vector3(0.0f, 0.0f, 0.0f)); Затем в методе InputListener mouseMoved(evt):

int x = evt.x; int y = evt.y; // получаем луч из позиции мыши Ogre::Camera* camera = scnMgr->getCamera("MainCamera"); Ogre::Ray ray = camera->getCameraToViewportRay(x / float(getRenderWindow()->getWidth()), y / float(getRenderWindow()->getHeight())); // Выполняем приведение лучей, чтобы проверить, находится ли курсор мыши над объектом Ogre::RaySceneQuery* query = scnMgr->createRayQuery(ray); запрос->setSortByDistance(истина); // Выполняем запрос Ogre::RaySceneQueryResult& queryResult = query->execute(); если (!queryResult.empty()) { // Курсор мыши находится над объектом Ogre::RaySceneQueryResult::iterator it = queryResult.begin(); Ogre::MovableObject* object = it->movable; // Изменяем цвет наведенного объекта если (объект) { если (hoveredNode) { // Сбрасываем цвет предыдущего объекта Объект MovableObject* = hoveredNode->getAttachedObject(0); Ogre::Entity* hoveredEntity = Dynamic_cast(hoveredNode->getAttachedObject(0)); если (hoveredEntity) { ChangeColor(hoveredEntity, ColourValue(1.0f,0.0f,0.0f)); //ЦВЕТ НЕ МЕНЯЕТСЯ printf("Здесь измените цвет"); } } hoveredNode = объект->getParentSceneNode(); //printf("здесь измените цвет"); // Изменяем цвет } } еще { // Ни один объект не наведен если (hoveredNode) { //printf("здесь измените цвет"); // Сбрасываем цвет предыдущего объекта hoveredNode = nullptr; } } Обнаружено наведение мыши, но цвет объекта не меняется, и я не могу понять, почему Пожалуйста, сообщите
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»