package gameplay.hitboxes; public class HitBox { private float position_x; private float position_y; private float size_x; private float size_y; public HitBox() { this.position_x = 0.0f; this.position_y = 0.0f; this.size_x = 0.0f; this.size_y = 0.0f; } public HitBox(float posX, float posY, float sizeX, float sizeY) { this.position_x = posX; this.position_y = posY; this.size_x = sizeX; this.size_y = sizeY; } public void setPosition_x(float position_x){ this.position_x = position_x; } public void setPosition_y(float position_y){ this.position_y = position_y; } /* * @param hb an Hitbox * @return true if HitBox overlap else return false */ public Boolean hit(HitBox hb) { Boolean horiz = false; Boolean ver = false; float horizontal1 = this.position_x + this.size_x; float vertical1 = this.position_y + this.size_y; float horizontal2 = hb.position_x + hb.size_x; float vertical2 = hb.position_y + hb.size_y; /* * HitBox overlap horizontally */ if(this.position_x < hb.position_x) { //this is at left of hb if(hb.position_x < horizontal1) { horiz = true; } }else {//this is at left of hb if(this.position_x < horizontal2) { horiz = true; } } /* * HitBox overlap vertically */ if(this.position_y < hb.position_y) { //this is at top of hb if(hb.position_y < vertical1) { ver = true; } }else {//this is at left of hb if(this.position_x < vertical2) { ver = true; } } return horiz && ver; } public float getPosX() { return position_x; } public float getPosY() { return position_y; } public float getSize_x() { return size_x; } public void setSize_x(float size_x) { this.size_x = size_x; } public float getSize_y() { return size_y; } public void setSize_y(float size_y) { this.size_y = size_y; } public void reverseHorizontally() { this.position_x = 138*5 - position_x; this.size_x = -this.size_x; } }