Нов съм в C++, така че ме извинете, ако не използвам терминология.
Пиша приложение в openframeworks, което използва библиотека по физика, наречена ofxMSAPhysics. За моите цели създадох персонализиран клас, наречен "particle", който наследява класа Particle3D на MSAPhysics.
Тук подавам указател към моя персонализиран обект към физическия двигател:
particle * p = new particle(ofVec3f(getTokenCoors(index)));
physics.addParticle(p);
В моя персонализиран клас имам публичен член, наречен collide, който задавам на true, когато една частица се сблъска с друга. За да направя това, замествам един от виртуалните методи на Particle3D:
void collidedWithParticle(ParticleT *other, ofVec3f collisionForce) {
collide = true;
}
Сега бих искал да проверя кога една частица се сблъсква с друга. physics.getParticle(i)
връща частица от физическия двигател, но една от типа Particle3D
, а не от моя потребителски тип частица. Така че, когато преминавам през частиците, върнати от getParticle()
, нито една от тях не съдържа моята променлива "collide".
Има ли начин за достъп до персонализираните ми частици, след като бъдат добавени към двигателя?
Моля, уведомете ме, ако мога да изясня нещо.
РЕДАКТИРАНЕ: collidedWithParticle() е виртуален член на Particle3D. Току-що накарах моя заменен метод да настроя collide на true, за да видя дали работи.
Particle3D
? - person greatwolf   schedule 23.07.2013collidedWithParticle
виртуална функция-член наParticle3D
или е специфична заparticle
? - person juanchopanza   schedule 23.07.2013bool
? - person greatwolf   schedule 23.07.2013