Édition: Résolu à moi-même, avait une de ces petites fautes de frappe qui sont difficiles à remarquer dans une section différente, fonctionne parfaitement maintenant.Création d'un attracteur de particules dans DirectX
J'ai un générateur de particules en C++ que j'ai quitté Internet. C'était essentiellement un échantillon de certaines choses que vous pouvez faire, donc je l'ai étudié et je sais ce qui se passe et ce que je dois faire pour ajouter les fonctionnalités que je veux. Je travaille sur celui-ci en ce moment. J'ai une autre méthode que j'utilise pour créer le GravPoint puis celui-ci fait le calcul. Les commentaires décrivent ce qui se passe et où est mon erreur.
// Update velocity with respect to any GravPoints in range
// Start at the head of the list
ppGravPoint = &m_pGravPoints;
// Temporary D3DXVECTOR3
D3DXVECTOR3 vTemp;
// While there is still a node on the list
while (*ppGravPoint)
{
pGravPoint = *ppGravPoint;
// vTemp becomes a vector pointing from m_vCurPos to m_vPoint
// I'm getting an error at this line, it opens up d3dx9math.inl
// and points at this piece of code:
// D3DXINLINE D3DXVECTOR3
// D3DXVECTOR3::operator - (CONST D3DXVECTOR3& v) const
// {
// return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
// }
vTemp = pGravPoint->m_vPoint - pParticle->m_vCurPos;
// if ||vTemp|| (length of vTemp) < m_fMaxDist (FLOAT m_fMaxDist)
if((sqrt((vTemp.x * vTemp.x) + (vTemp.y * vTemp.y) + (vTemp.z * vTemp.z)) < pGravPoint->m_fMaxDist))
{
// Then the velocity of the current particle being rendered is adjusted
// to be attracted towards the gravpoint. Pretty sure this is right
pParticle->m_vCurVel += (vTemp * (pGravPoint->m_fStrength * fElpasedTime));
}
// Go to next point if there is one.
ppGravPoint = &pGravPoint->m_gpNext;
}
Le "StackOverflow" consiste à ajouter votre propre réponse (pour partager des connaissances) et à l'accepter vous-même ... – neuro
Je le ferais, mais mon problème était dans un endroit totalement différent dans la classe; si je l'ai posté savoir on sait ce qui se passe à moins que j'ai posté la classe entière, l'en-tête et le fichier cpp, qui est de 2100 lignes. – Tanner
Une question vieille d'un an. :/Je suis plus préoccupé par le fait que vous n'utilisez pas 'std :: list', et pourquoi vous voudriez une liste sur un' std :: vector'. – GManNickG