Ok Im almost done with collision detection between my Camera and Walls . However, I made small change, bud don’t know where in my program that corrupts my Collision data… When I position my camera Near the Wall, and Run Debug, the collision detects intersection, and sends collision Flag… However in my Program after 1st collision, for some reason I can go through walls . .I was wondering If it is possible to run the program ( you know Key interaction, moving my camera ) while at the same time looking at the Debug Data, trying to pin point the mistake ???
Im using VC++ 6.0… In my program I have interactions with the keyboard. While debugging in VC++, I can’t use my program, only can see what whether collision happens or not, from my Defaul camera values … I would like to run my program, and try to see a after which function my data gets corrupted, while changing Position of the camera…
I know the program is good, because it Run perfectly when I only had 1 wall … Then I decided to add 3 crating Rectangular inclusion… My Idea was to crate couple of Structures, linked together to the main Structure which would define the Individual Wall…
Ex
Wall[0].info.CrossPvector.x
or
Wall[2].coordinates[3].x
This way I could just crate Linked structures, and then Easily assign coordinates for 4 walls, and using the same Function compute Cross Product, Vectors, Normalize etc …
And its works, but somewhere I made a BOOBOO, and I don’t see where.
Just a thought… can you use asserts or conditional breakpoints to try and trap your error? Sometimes these are the best tools to find mistakes like these.
You could also put a breakpoint on the memory address that is getting corrupted, and then when it changes your program will break. To do this, go to the breakpoints menu (ctrl-b I think) and go to the data tab and type in the memory address
If you can run your program in windowed mode, I know you can debug this sort of thing with the gnu tools (under, say, Linux) quite nicely.
The way it works there is; you open up a terminal window and run your program from there. printf()'s get printed out to the window from where you ran the program (as usual).
Then you open up a 2nd terminal window and run gdb from there – you run gdb in such a way as to attach to the already-running process (which you’ve got paused perhaps, or maybe just looping or waiting for input).