|
|
@ -1,9 +1,41 @@ |
|
|
|
package tanks; |
|
|
|
|
|
|
|
/* |
|
|
|
class that provides functinality for game elements interacting with each other. |
|
|
|
jeffery R |
|
|
|
5-21-16 |
|
|
|
Gives every sub-class a width and a height |
|
|
|
every GameElement is able to check for a collision with another gameElement |
|
|
|
*/ |
|
|
|
public class GameElement |
|
|
|
package tanks; |
|
|
|
|
|
|
|
import java.awt.geom.Area; |
|
|
|
|
|
|
|
public abstract class GameElement extends DrawableElement |
|
|
|
{ |
|
|
|
//generic information about the game element |
|
|
|
public int width, height; |
|
|
|
|
|
|
|
|
|
|
|
//geometry variable used for collisions |
|
|
|
public Area shape; |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
checks for collision against another game element |
|
|
|
will only work if both shape variables are set |
|
|
|
depending on the object the shape are will be set differently |
|
|
|
|
|
|
|
returnes true if there was a collision, false otherwise |
|
|
|
*/ |
|
|
|
public boolean checkCollision(GameElement e) |
|
|
|
{ |
|
|
|
//sets the areas of the two elements being compared |
|
|
|
this.setShape(); |
|
|
|
e.setShape(); |
|
|
|
//checks to see if there is an overlape in the two areas |
|
|
|
shape.intersect(e.shape); |
|
|
|
return !(shape.isEmpty()); |
|
|
|
} |
|
|
|
|
|
|
|
//method that ensures that every sub-class will set their shape accordingly |
|
|
|
public abstract void setShape(); |
|
|
|
|
|
|
|
} |
|
|
|
} |