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  
  best way to do collision detection( a lot of it)?  (Read 1391 times)
0 Members and 1 Guest are viewing this topic.
Offline wilburthemexican

Senior Newbie

« Posted 2007-12-17 04:26:45 »

Hey, I'm trying to do collision dection
I was wondering if people had any suggestions on doing a lot of collision detection. Lets say you have hundreds of sprite objects in a game, dynamically being created and destroyed.  Whats the best way to do all of the collision detection. I'ld rather not have to loop through all the objects and check each objects bounding box against all the other bounding boxes.  This seems like it might be to much processing and to slow especially with rectangle.intersects(rectangle)
Offline Mr_Light

Senior Devvie

Medals: 1


« Reply #1 - Posted 2007-12-17 05:52:40 »

you can only check against objects that are close. (sux if objects move fast I gues)
you can only check against objects that are on a (possible) collision course. (sux if objects change direction often I gues)
you 'discretalise' the space and check if the new space is occupied(sux if the space is 'large' I gues)
etc. (there are I guess tons of other ways and solutions to shortcomings of the ways mentioned for example the discretization needs not to be homogeneous over the whole space)

there is nothing wrong I guess to stick it in a big loop first and profile it, check if solutions arise / figuring out how big your problem is and move from there. If you can easily swap out code to try out different approaches it should be a sign of well organized code.

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline appel

JGO Wizard

Medals: 80
Projects: 4

I always win!

« Reply #2 - Posted 2007-12-17 07:51:31 »

You can organize your objects in a quad-tree, that is spatially organize your objects. Fairly simple to implement and a lot faster than O(n2).

If you game is a tile based game and objects are assigned to tiles then it's a lot simpler to check if your objects collides with any other object in the same tile (if you allow multiple objects on a single tile) or surrounding tiles (which can be defined as many tiles outward as you like).

I'm sorry I don't got any links for you, but I'm sure Google is your friend Smiley
Pages: [1]
  ignore  |  Print  

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

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

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

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

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

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

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

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

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

Solater (143 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!