Meine "Welt" ist momentan einfach ein Mesh als einfache Platte.
Schwerkraft hab ich auch schon, die wirkt allerdings nicht auf die Kamera, da ich erstmal will dass diese absolut frei beweglich ist, also nicht nur auf dem Boden. Nur durchfliegen sollte sie auch nicht können, also brauch ich Kollision. Die Funktioniert ja auch soweit, außer dass die Kamera halt so unnötig rotiert...
Ich kann ja mal hier den Code posten..:
Funktion(en) zum Laden der Welt
Code:
IAnimatedMesh* Graphics::loadMesh(char* filename) {
return device->getSceneManager()->getMesh(filename);
}
void Graphics::loadWorld(char* worldfile) {
worldMesh = loadMesh(worldfile);
worldNode = device->getSceneManager()->addOctTreeSceneNode(worldMesh->getMesh(0));
worldNode->setMaterialFlag(EMF_LIGHTING,false);
worldNode->setTriangleSelector(device->getSceneManager()->createOctTreeTriangleSelector(worldMesh->getMesh(0),worldNode,128));
}
Funktion zum Erstellen der Kamera
Code:
ICameraSceneNode* Graphics::createCamera(vector3df position, vector3df target, bool bind) {
ICameraSceneNode* camera = device->getSceneManager()->addCameraSceneNode(0,position);
camera->bindTargetAndRotation(bind);
camera->setTarget(target);
camera->addAnimator(device->getSceneManager()->createCollisionResponseAnimator(worldNode->getTriangleSelector(), camera, vector3df(1,1,1), vector3df(0,0,0), vector3df(1,1,1), 0));
return camera;
}
loadWorld und createCamera werden dann sofort hintereinander einfach aufgerufen bei Starten des Spiels. Und so wie es ist führt es halt zu dieser komischen Rotation. Ich hoffe mal man kann mir da irgendwie helfen, sonst müsste ich mir irgendwas kompliziertes einfallen lassen -.-.
Falls noch benötigt kann ich auch noch den Code für die Kamerabewegung posten, aber das lass ich erstmal, weil dann wirds glaub ich unübersichtlich^^