Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (429)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (468)
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  
  Am I doing this collision check right?  (Read 971 times)
0 Members and 1 Guest are viewing this topic.
Offline kinaite

Senior Newbie


Projects: 1



« Posted 2012-09-19 19:50:10 »

this is right?
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
public BEntity collide(BEntity e1, String tipo,float x, float y,float wid, float hei)
    {
     //hitboxWidth = Image Width, hitboxHeight = Image height.
    Rectangle rectangle1 = new Rectangle(e1.x + x,e1.y + y,e1.hitboxWidth + wid,e1.hitboxHeight + hei);
     for(int i = 0; i < entities.size(); i++)
     {
      Rectangle rectangle2 = new Rectangle(entities.get(i).x,
              entities.get(i).y,entities.get(i).hitboxWidth,entities.get(i).hitboxHeight);
     if(e1 != entities.get(i))
     {
      if(rectangle1.intersects(rectangle2))
      {
       if(entities.get(i).type.equals(tipo) || tipo == null)
       {
        return entities.get(i);
       }
      }
     }
     }
     return null;
    }


and the getter:
collide(this,type,-1,+4,-1,-5);
to get the entity on left
Offline aazimon
« Reply #1 - Posted 2012-09-19 20:21:12 »

For the most part, yes.
You need to be careful about creating new objects. If you are creating a new Rectangle in you update loop for every Entity, this will slow down the game. One way to solve this is to have that class (with the collide method) have to Rectangle object already created, and update the coordinates of the rectangle.
  I'm not sure what you are doing with the line: (entities.get(i).type.equals(tipo) || tipo == null), but you may want to check that first.

Regards, Smiley
Offline kinaite

Senior Newbie


Projects: 1



« Reply #2 - Posted 2012-09-19 20:56:50 »

Yeah thanks, but making a one-time rectangle has bugged my game. Tongue its a bejewelled like game.

Edit: nothing, thanks the rectangles worked!
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline 8Keep

Senior Newbie


Medals: 1



« Reply #3 - Posted 2012-09-19 21:13:26 »

What exactly is bugged?


If the type is the type of object, for instance only specific entity types should collide with each other, then this:

1  
2  
3  
4  
if(rectangle1.intersects(rectangle2))
      {
       if(entities.get(i).type.equals(tipo) || tipo == null)
       {


Should be reversed. You should check to see if the types are the same before checking if their rectangles intersect.
Offline 8Keep

Senior Newbie


Medals: 1



« Reply #4 - Posted 2012-09-19 21:17:32 »


If the type is the type of object, for instance only specific entity types should collide with each other, then this:

1  
2  
3  
4  
if(rectangle1.intersects(rectangle2))
      {
       if(entities.get(i).type.equals(tipo) || tipo == null)
       {


Should be reversed. You should check to see if the types are the same before checking if their rectangles intersect. This probably wont affect the collision, but it will slow the game down, especially if you are checking collisions for a large array of entities.
Offline kinaite

Senior Newbie


Projects: 1



« Reply #5 - Posted 2012-09-20 17:58:22 »

What exactly is bugged?


If the type is the type of object, for instance only specific entity types should collide with each other, then this:

1  
2  
3  
4  
if(rectangle1.intersects(rectangle2))
      {
       if(entities.get(i).type.equals(tipo) || tipo == null)
       {


Should be reversed. You should check to see if the types are the same before checking if their rectangles intersect.
No problem, I only had make something wrong, they are working good now.
And about the tipo, I've put them in the top of ifs. thanks both of you. and sorry for bad english
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

theagentd (6 views)
2014-04-24 23:00:44

xsi3rr4x (83 views)
2014-04-15 18:08:23

BurntPizza (75 views)
2014-04-15 03:46:01

UprightPath (86 views)
2014-04-14 17:39:50

UprightPath (69 views)
2014-04-14 17:35:47

Porlus (86 views)
2014-04-14 15:48:38

tom_mai78101 (109 views)
2014-04-10 04:04:31

BurntPizza (169 views)
2014-04-08 23:06:04

tom_mai78101 (265 views)
2014-04-05 13:34:39

trollwarrior1 (216 views)
2014-04-04 12:06:45
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org 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‑gaming.org
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!