Bonjour,

je développe actuellement un petit jeu vue à la 3ième personne et j'ai un problème lors de la fermeture de l'application, et apparemment celà viendrait de la caméra. J'ai donc créé une classe ThirdPersonCamera qui hérite de Ogre::Camera, et je lui ai ajouté une méthode setTarget(Ogre::SceneNode *movableTarged) afin d'indiquer à la caméra quel node elle doit suivre du regard (le personnage, car la caméra sera fixe en intérieur, elle ne fera que regarder toujours vers le joueur), et j'appelle ensuite une méthode update() afin d'actualiser la position de la cible de la caméra en fonction de la position du node. Le problème survient quand j'appuye sur la touche échap qui va terminer l'application en renvoyant false à frameStarted(), j'obtiens une erreur Heap Corruption Detected. CRT detected that the application wrote to memory after end of heap buffer. Après plusieurs essais j'ai remarqué que celà n'arrive que lorsque j'ai appelé la méthode setTarget(). Voici le code :

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
#include "ThirdPersonCamera.h"
 
ThirdPersonCamera::ThirdPersonCamera(const Ogre::String name, Ogre::SceneManager *sceneMgr) : Ogre::Camera(name, sceneMgr)
{
	mMovableTarget = NULL;
}
 
void ThirdPersonCamera::setTarget(Ogre::SceneNode *node)
{
	mMovableTarget = node;
}
 
void ThirdPersonCamera::update()
{
	//Oriente la caméra vers la cible
	lookAt(mMovableTarget->getPosition());
}
Quelqu'un aurait-il une idée ?

Merci