From: David <inf...@gm...> - 2009-07-30 16:27:55
|
I actually have some code this time :D -- although it is still more of a test than an actual improvement at the moment. I thought I'd post it so that you know I'm still slowly working on this and to maybe get some more advice from hiker. > I just realised something: >> Currently the src/physics/btkart.cpp code has 2 hacks that are purposely >> put in there, but lead to unwanted side effects. >> > There is actually a third important change included: the bullet skidding > code is removed. So as recommended before: start with a clean raycast > vehicle from bullet, and don't base anything on btKart. > Okay. I started with bullets btRaycastVehicle code and started patching it to look like the current btKart code. There was actually quite a few small patches to add and they all actually make a lot of sense (albeit with some side extra effects for one in particular I mentioned before). If by 'skidding' you mean 'sliding,' I set a boolean to switch this on/off (and found it better off :P). I then added code to check for changes in slope between frames so that the kart doesn't suddenly find itself on a different slope. The patched code (although a little messy) should do this reasonably well and give clear output for when this happens. The only problem is that this doesn't appear to be as bad a problem as I thought it would be :S I want the karts to be able to go up smooth, curved ramps at high velocity (this would have other benefits such as making it easier to travel on upwards gradients, or making sure the kart does not pass through certain sloped surfaces and get rescued at high speeds or being pushed by an explosion). Could it be the wheels go up the ramps fine, but the frame of the kart, which is larger, collides with the angled surface ahead? How do I switch on bullet debugging to see the actual shapes? |