Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (757)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (844)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  How to 2D AABB  (Read 1683 times)
0 Members and 1 Guest are viewing this topic.
Offline Mads

JGO Ninja

Medals: 26
Projects: 3
Exp: 6 years

One for all!

« Posted 2011-11-24 02:13:05 »

Hello guys!

I want to discuss the best implementation of collision-handling in a sideviewed platformer.  Let us keep on topic of
AABB collisions.

Regarding handling the last step before hitting something.. can either calculate where to put the player, or you can calculate how big of a step is needed.
Either way, you end up with pretty much the same result.

Which of the two would you guys prefer? I'm not talking about ease of implementation, but of how well the code solves the problem. I recently implemented the first one, and it doesn't feel good, even though it behaves the same.

Regarding the procedure of updating..
..What I've been doing so far, is to have different, but similar in many ways, methods for each of the different collisions:
  • Right side of character, when walking/jumping right
  • Left side of character, when walking/jumping left
  • Top border of character, when jumping and hitting something in air
  • Bottom border of character, when falling down and hitting the floor

I would have a fallUpdate(), jumpUpdate(), and walkUpdate(direction). The last one can be split into two - it's just two if-statements judging wether the character is running right or left.

However, looking at Metagun for instance, it seems that the same one method can be used to calculate the steps, for both directions and when jumping.
That one method is also shorter than my three together.

Is there something about this? What would be the best way to handle all four collisions?

Regarding what positions to check..
How does one determine this? I would just check the four corners of a character, but when the character get's higher than a block, you can jump up and get stuck within them. That's possible, because you would only be checking the two corners, which aren't colliding at all. This makes for some pretty weird bugs, and now you're unable to have thin shapes.

I don't believe this is the best way to handle this. What do you think? Do you know of any other ways to solve this problem?

Pages: [1]
  ignore  |  Print  

EgonOlsen (44 views)
2018-06-10 19:43:48

EgonOlsen (24 views)
2018-06-10 19:43:44

EgonOlsen (46 views)
2018-06-10 19:43:20

DesertCoockie (201 views)
2018-05-13 18:23:11

nelsongames (126 views)
2018-04-24 18:15:36

nelsongames (125 views)
2018-04-24 18:14:32

ivj94 (866 views)
2018-03-24 14:47:39

ivj94 (127 views)
2018-03-24 14:46:31

ivj94 (770 views)
2018-03-24 14:43:53

Solater (142 views)
2018-03-17 05:04:08
Java Gaming Resources
by philfrei
2017-12-05 19:38:37

Java Gaming Resources
by philfrei
2017-12-05 19:37:39

Java Gaming Resources
by philfrei
2017-12-05 19:36:10

Java Gaming Resources
by philfrei
2017-12-05 19:33:10

List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!