Page 1 of 1

Hey Chili!

Posted: August 2nd, 2017, 8:37 pm
by goldengamesTM
Hey Chili, I want to add colliding physics to this. How do I go about doing that? I have tried different things but none worked. I left the code in for you.

Re: Hey Chili!

Posted: August 2nd, 2017, 11:20 pm
by albinopapa
You need more than the .sln file to open the project. You need to upload the entire solution folder, or create a GitHub account, upload your project to your GitHub account and share the link. You can check chili's videos on how to create a repository on GitHub.

Re: Hey Chili!

Posted: August 2nd, 2017, 11:33 pm
by albinopapa
For rectangle collision,

Code: Select all

// Not real code, can't copy and paste this shit and expect it to work.  You'll have to come up with the real code yourself.
rect_a
rect_b

if
rect_a.left <= rect_b.right and rect_a.right > rect_b.left and
rect_a.top <= rect_b.bottom and rect_a.bottom > rect_b.top then 
collision = true;
If you don't have a rect class, then left is usually the xPosition, right is the xPosition + width, top is yPosition and bottom is yPosition + height.

That is collision detection. The correction part is still a mystery to me lol. If rect_a is coming from the top, then push up ( yPosition += rect_b.top - rect_a.bottom ), if coming from the left add the difference of overlap along the left of B and the right of A to the xPosition. When coming from the corners ( overlap on top or bottom and one of the sides ) one way of doing it would be to get the opposite direction the moving object was going in and move it until there is no overlap.

Re: Hey Chili!

Posted: August 2nd, 2017, 11:48 pm
by goldengamesTM
albinopapa wrote:For rectangle collision,

Code: Select all

// Not real code, can't copy and paste this shit and expect it to work.  You'll have to come up with the real code yourself.
rect_a
rect_b

if
rect_a.left <= rect_b.right and rect_a.right > rect_b.left and
rect_a.top <= rect_b.bottom and rect_a.bottom > rect_b.top then 
collision = true;

If you don't have a rect class, then left is usually the xPosition, right is the xPosition + width, top is yPosition and bottom is yPosition + height.

That is collision detection. The correction part is still a mystery to me lol. If rect_a is coming from the top, then push up ( yPosition += rect_b.top - rect_a.bottom ), if coming from the left add the difference of overlap along the left of B and the right of A to the xPosition. When coming from the corners ( overlap on top or bottom and one of the sides ) one way of doing it would be to get the opposite direction the moving object was going in and move it until there is no overlap.
I Added The Solution So You Can Look At The Code Yourself And See The Dumb Way I Did That.