Reacting to a 2d collision

Started by
0 comments, last by kevdotbadger 12 years ago
Hay, I've got 3 blocks. One is moveable with WASD and the other 2 are non-moveable. They all have bounding boxes and I've programmed it so that when 2 shapes intersects the moveable block gets moved back based on the width and height of the intersection. This works perectly, but only if collides with 1 block.

I hold the 2 non-moveable blocks inside a vector, then I'm looping through the vector and checking the collisions.

I've got 3 images to illustrate my problem.

Hmhk8.png
This shows the layout, the red block is moveable, basically I'm going to be heading in an up-left direction. Holding the W and A keys.

ROrJf.png
This shows that the blocks collide correctly at this point, I am still holding W and A at this point.
ReIMU.png
I am continuing to hold W and A but the red block no longer heads in that direction. It gets stuck here. The problem, i think, is that the 2 green blocks are arguing with repositioning the red block based on the intersection.

How do I deal with this? Is there any example code I can look at to help me with this problem?
Advertisement
Here are my files, I'm using SFML, so you'll need to relink SFML then run it. Most of the collision code is in the gameObject and main.cpp files.

main - http://pastie.org/3654696
player - http://pastie.org/3654701
spriteManager - http://pastie.org/3654702
gameObject - http://pastie.org/3654708

This topic is closed to new replies.

Advertisement