Side scroller - collision detection

Hello everyone.

I’m making a side scroller fighting game and I have
a couple of questions. I’ve got the sprite animation
working and I’m wondering if I should have gravity
built into the Sprite (base class) or have it as
a implementation detail. It got me thinking that I could
use setters for speed, jumping power,
animations, etc… So you could just extend Sprite and use these methods in your constructor. Another approach is to create a ConfiguredSprite class that subclasses Sprite and add a constructor to ConfiguredSprite that accepts the file name of a sprite configuration file, and the ConfiguredSprite class does the parsing.

another problem I have is collision detection.
I first check for collisions with the bounding rectangles
of the sprites current images. And then if a collision occurs
I use pixel perfect collision detection. The problem is I don’t know what to do once I know that they are colliding, how to line them up side by side is a problem.

I think the common consensus is to separate the graphical, physical, and behavior aspect of game entities.

So your sprite is the graphical representation. You could have a bounding_box/physics object that interacts with other bb/physics objects, and a behavior object (accept user input for the player and an ai object of some sort for the npcs)

So the supposed class may look like:


public class Fighter {
  private Sprite sprite;
  private PhysObj physobj;
  private Behavior behavior;

  public Fighter (Behavior b)  {
     behavior = b;
  }
  public void update(float deltaT)  {
     behavior.update();
     physobj.update(deltaT);
     sprite.setPosition(physobj);
  }
  public void draw(Graphics g)  {
     sprite.draw(g);
   }
}

Or whatever.

So far as collision detection and physics; thats a really big subject and my knowledge is not great and I’m tired of typing…

Thank you nonsus. That will really help clean up my Sprite class. :slight_smile:

I’m really sorry nonnus, I apologize for miss-spelling your name.