- import java.awt.Rectangle;
- import java.util.ArrayList;
-
- public class Collision {
-
- Driver driver;
-
-
- ArrayList<WorldObject> spriteListWorld;
-
-
- int collisionCorrection = 6;
-
-
- int checkSumRight = 0;
- int checkSumLeft = 0;
-
-
-
- public Collision(Driver driver, ArrayList<WorldObject> spriteListWorld) {
- this.driver = driver;
- this.spriteListWorld = spriteListWorld;
-
-
- for (WorldObject sprite : spriteListWorld) {
- sprite.rectangle = new Rectangle((int)sprite.x, (int)sprite.y, sprite.width, sprite.height);
- }
- }
-
-
- public void collisionObjects() {
-
-
- for (WorldObject sprite : spriteListWorld) {
-
-
-
- driver.rectangle = new Rectangle((int)driver.x, (int)driver.y, driver.width, driver.height);
-
-
-
- if (driver.rectangle.intersectsLine(sprite.rectangle.getMinX() + collisionCorrection, sprite.rectangle.getMinY(),
- sprite.rectangle.getMaxX() - collisionCorrection, sprite.rectangle.getMinY())) {
- driver.y = sprite.rectangle.getMinY() - driver.height - collisionCorrection;
- driver.landing = true;
- }
-
-
- if (driver.rectangle.intersectsLine(sprite.rectangle.getMinX() + collisionCorrection, sprite.rectangle.getMaxY(),
- sprite.rectangle.getMaxX() - collisionCorrection, sprite.rectangle.getMaxY())) {
- driver.jumping = false;
- }
-
-
- if (sprite.rectangle.intersectsLine(driver.rectangle.getMinX(), driver.rectangle.getMinY() + collisionCorrection,
- driver.rectangle.getMinX(), driver.rectangle.getMaxY() - collisionCorrection)) {
- driver.collideLeft = true;
- sprite.collideRight = true;
- }
-
-
- if (sprite.rectangle.intersectsLine(driver.rectangle.getMaxX(), driver.rectangle.getMinY() + collisionCorrection,
- driver.rectangle.getMaxX(), driver.rectangle.getMaxY() - collisionCorrection)) {
- driver.collideRight = true;
- sprite.collideLeft = true;
- }
-
- checkSum();
- }
- }
-
-
- public void collisionEnemy() {
-
- }
-
-
- private void checkSum() {
-
-
- for (WorldObject sprite : spriteListWorld) {
-
-
- if (sprite.collideRight == true) {
- checkSumRight++;
- }
-
-
- if (sprite.collideLeft == true) {
- checkSumLeft++;
- }
-
-
- sprite.collideRight = false;
- sprite.collideLeft = false;
- }
-
-
- if (checkSumRight == 0) {
- driver.collideLeft = false;
- }
- else {
- checkSumRight = 0;
- }
-
-
- if (checkSumLeft == 0) {
- driver.collideRight = false;
- }
- else {
- checkSumLeft = 0;
- }
- }
- }
-
-
select language
-
select style
goto line: