There is actually in the moment no way integrated to pause the simulation. If you don't call "step" while it's paused it should do all the movement after it's continued. What should work is to call the "stop" method of Irrlicht's timer (although this would stop almost anything, e.g. the FPS cameras). Maybe I should add a function to pause the simulation.
There was a little change in the past. Before you get to that screen you (should) see a selection screen where you can chose the screen resolution, fullscreen mode and which vehilces should be in the scene (with the comboboxes). If you don't select any vehicles you won't get any button there. Maybe I should add a check so the program doesn't start without any vehicles.
One note: if you start the program from the Windows Explorer by selecting it and pressing the "Enter" key it sometimes happens that the "Enter key pressed" event is also received by that selection window, in that case try to start it by double click.
Hi
I am trying to implement a simple car driving simulation using Irrlicht and IrrOde. I did everything based on the tutorials, starting from HelloWorld, but I got an error I don't know how to solve. First I am using Windows 7, Visual Sutdio 2008, irrlicht-1.7.2, ode-0.11.1, and the last downloadable IrrOde. In the tutorial you mentioned use of ode_singe.lib but in my case I get only ode_doubled.lib after building the solution. I follow exactly the Tutorial 02, and there is no error during compiling but there is an error during execution. A message "no world!" is displayed and then the program exit. I tried to use irrlicht-1.7.1, and ode-0.11 but the problem still stands. Do you have any idea what is wrong with my code?
Thanks
I tried the same code under Windows XP but the problem still stands.
Let me tell everything from scratch. Maybe you find something in my process:
1) I download irrlicht-1.7.2 and just extract it into C:
2) I download ode-0.11.1 and after making vs2008 solution using "premake4 vs2008", I just build the solution and in result the ode_doubled.lib is made within DebugDoubleDLL folder.
3) I download irrode.tar.gz and extract it and then I run IrrOde.sln inside vc2008 folder. In response libIrrOde.lib is made.
4) I just make an empty win32 console project, then copy the content of the main.cpp within C:\irrode\source\helloOdeWorld folder into my main.cpp. Then I change the Additional Include Directories and Additional Library Directories and Additional Dependencies to appropriate folder names and file names.
5) When I compile the solution, there is no error, when I want to run it, it ends suddenly. I can see "no world!" message on the black DOS display. This happens both on Windows 7 and Windows xp.
I don't know which part I am doing wrong. There is hint from ODE website under (), it says:
"Add one of the preprocessor symbols dSINGLE (single precision) or dDOUBLE (double precision), depending on how ODE was configured. If none is defined, single precision is assumed; if the wrong precision is enabled all floating-point data going in and out of ODE will be corrupt, producing all kinds of errors."
Is this library ode_doubled.lib means I should add dDOUBLE preprocessor? And if yes how should I do that?
Why both in your tutorial and ODE wiki, ode_singled.lib is mentioned, but in my case I have just ode_doubled.lib? Is there any way I can make single version instead of double version?
In page 30 of your posts, Sky-Fox answered this:
"Thank you very much. Problem solved!
I recompile my ODE. (ode_single.dll)"
It seems he had such a same problem, but I couldn't trace it.
You told me it is better to send the code to you, I am just using your code, so I think it doesn't need to share any piece of code.
I think there should be separate build targets for all kinds of ODE solutions (like single precision or double precision) generated with premake. If not try to search for a place where defines can be set in VC (I normally use Code::Blocks, so I don't know where to search) and simply add "dSINGLE" there. This should make a single precision ODE drop out.
I'm trying to remove objects from my simulated world.
When I call "pBody->doRemoveFromPhysics()", the physics simulation doesn't affect the object, so I think it was successfully removed from IrrOde.
However, I need to remove it from Irrlicht too and then I call "pBody->ISceneNode::remove();", getting a seg fault (when debugging) or a "ODE INTERNAL ERROR 2: Bad argument(s) in dGeomSetBody" (when running).
What am I doing wrong?
I'm on a 64-bit Linux system using Code::Blocks and Irrlicht 1.7.0.
I'm not sure and can't take a look at my sources right now (you know ... sitting at work ), but you could check the CProjectile class of the IrrOdeCar demo. In this demo you can shoot projectiles and missiles, and the objects get removed from both the physics and the scene without segmentation faults. It sort of works this way (from memory)
- collision detected
- remove from physics
- hide bullet/missile
- play explosion animation
- remove node from scene once animation is finished
I have already read CProjectile.cpp, but I couldn't find something helpful... However, I tried to look it again today, and all I found (or understood) was that this should work: