Skip to content
Snippets Groups Projects
Commit 62df90c1 authored by Oscar Wiberg's avatar Oscar Wiberg
Browse files

collision vid duckande löst

parent 1ab3c635
No related branches found
No related tags found
1 merge request!1Testb
4
\ No newline at end of file
14
\ No newline at end of file
......@@ -45,21 +45,7 @@ public class Enemy extends Antagonist{
}
return false;
// if ((enemyX < (player.getPlayerX() + 80.00)) && ((enemyX) > player.getPlayerX())) { //borde vara +80 på enemyx men funkar ej
//// if((player.getPlayerY() + 60.00) >= enemyY) {
//// if((player.getPlayerY() + 60.00) >= enemyY) {
// // if ((enemyY + 80 > (player.getPlayerY())) && ((player.getPlayerY() + 80) > enemyY)) {
// hit = true;
// player.decreaseLives();
//// if (hit && enemyX < player.getPlayerX() + 100) {
//// hit = false;
//// }
//
// }
//
// System.out.println("helooooooooo");
//
// return hit;
}
......
......@@ -70,22 +70,16 @@ public class FlyingEnemy extends Antagonist{
// this.enemyY.add(200.00);
this.enemyY.add(210.00);
// this.enemyY.add(220.00);
this.enemyY.add(250.00);
// this.enemyY.add(250.00);
}
@Override
public boolean playerAntagonistCollision(Player player) {
// boolean hit = false;
// boolean collisionX = player.getPlayerX() < (x + Constants.enemyWidth) && (player.getPlayerX() + Constants.playerWidth) > x;
//
// // Check for collision on the y-axis
// boolean collisionY = player.getPlayerY() < (currY + Constants.enemyHeight) && (player.getPlayerY() + Constants.playerHeight) > currY;
boolean collisionX = player.getPlayerX() < (x + 60.00) && (player.getPlayerX() + 60.00) > x;
// Check for collision on the y-axis
boolean collisionY = player.getPlayerY() < (currY + 45.00) && (player.getPlayerY() + 60.00) > currY;
boolean collisionY = player.getRect() < (currY + 60.00) && (player.getRect() + 60.00) > currY;
if (collisionX && collisionY && !collisionDetected) {
......@@ -98,26 +92,9 @@ public class FlyingEnemy extends Antagonist{
collisionDetected = false;
}
// if ((x < (player.getPlayerX() + 80.00)) && ((x) > player.getPlayerX())) { //borde vara +80 på enemyx men funkar ej
// // if((player.getPlayerY() + 60.00) >= enemyY) {
// if((player.getPlayerY() > currY +80)) {
// // if ((enemyY + 80 > (player.getPlayerY())) && ((player.getPlayerY() + 80) > enemyY)) {
//
// hit = false;
// player.decreaseLives();
// // if (hit && enemyX < player.getPlayerX() + 100) {
// // hit = false;
// // }
//
// }
//
// }
return false;
// public void setEnemyY() {
// enemyY = 0.0;
//
}
@Override
......
......@@ -60,9 +60,7 @@ public class MenuState extends GameState {
// Print the information text, centered on the canvas
g.fillText(informationText, Constants.screenWidth/4, Constants.screenHeight / 4);
g.drawImage(dinosaur, Constants.screenWidth/2, Constants.screenHeight/2, 200, 200);
// Can also use:
// g.setStroke(fontColor);
// g.strokeText(informationText, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
}
......
......@@ -6,6 +6,7 @@ import javafx.scene.image.Image;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
......@@ -74,12 +75,14 @@ public class PlayState extends GameState {
scoreText = "Highscore: " + Integer.toString(score.getHighScore());
// + Integer.toString(score.getHighScore());
if (mode) {
mode1();
} else {
mode2();
}
// menu = new MenuState(model);
}
......@@ -144,6 +147,13 @@ public class PlayState extends GameState {
// Ritar enemy och player
// g.drawImage(extraLife.getImage(), extraLife.getPowerUpX(), extraLife.getPowerUpY(), 40, 40);
g.drawImage(player.getImage(), player.getPlayerX(), player.getPlayerY(), Constants.playerWidth, Constants.playerHeight);
g.setStroke(Color.BLACK); // Set the rectangle's border color
g.setLineWidth(2); // Set the border width
if (!down) {
g.strokeRect(player.getPlayerX(), player.getPlayerY(), Constants.playerWidth, Constants.playerHeight);
} else {
g.strokeRect(player.getPlayerX(), player.getPlayerY() + 40, Constants.playerWidth, Constants.playerHeight);
}
// g.drawImage(enemy.getImage(), enemy.getEnemyX(), enemy.getEnemyY(), Constants.enemyWidth, Constants.enemyHeight);
drawEnemy(g);
......@@ -157,9 +167,19 @@ public class PlayState extends GameState {
engen = new Random();
g.drawImage(enemy.getImage(), enemy.getX(), enemy.getY(), Constants.enemyWidth, Constants.enemyHeight);
if (enemy.getX() < 0 - Constants.enemyWidth) {
enemy.setAntagonistX(Constants.screenWidth);
// g.drawImage(enemy.getImage(), enemy.getX(), enemy.getY(), Constants.enemyWidth, Constants.enemyHeight);
// if (enemy.getX() < 0 - Constants.enemyWidth) {
// enemy.setAntagonistX(Constants.screenWidth);
// player.updatePasses(1);
// }
g.strokeRect(flyingEnemy.getX(), flyingEnemy.getY(), Constants.enemyWidth, Constants.enemyHeight);
g.drawImage(flyingEnemy.getImage(), flyingEnemy.getX(), tempy, Constants.enemyWidth, Constants.enemyHeight);
if (flyingEnemy.getX() < 0 - Constants.enemyWidth) {
flyingEnemy.setAntagonistX(Constants.screenWidth);
player.updatePasses(1);
}
......@@ -210,6 +230,7 @@ public class PlayState extends GameState {
// Spelaren kan inte ducka om den är mitt i ett hopp
if (!up) {
down = true;
}
break;
......@@ -227,27 +248,29 @@ public class PlayState extends GameState {
//om enemy position är mindre än player och collide är true kollar den inte collision
// Enemy hoppar 10 snäpp till vänster för varje update
enemy.setAntagonistX(enemy.getX()-10);
// enemy.setAntagonistX(enemy.getX()-10);
flyingEnemy.setAntagonistX(flyingEnemy.getX()-10);
// flyingEnemy.setAntagonistX(flyingEnemy.getX() -10);
// Om
if (!gameOver) {
if (!collided) {
collided = enemy.playerAntagonistCollision(player);
// collided = enemy.playerAntagonistCollision(player);
collided = flyingEnemy.playerAntagonistCollision(player);
if (Integer.valueOf(player.getLives()) == 0) {
gameOver = true;
}
}
if (collided && enemy.getX() < player.getPlayerX()) {
if (collided && flyingEnemy.getX() < player.getPlayerX()) {
collided = false;
}
if (up) {
......@@ -261,14 +284,35 @@ public class PlayState extends GameState {
if (down) {
player.slide(slidingPlayer);
}
}
}
public void checkCollision() {
if((player.getPlayerY() + 60) >= enemy.getY() ) {
collided = true;
// System.out.println("fäk");
if (Integer.valueOf(player.getLives()) == 1) {
// menu = new MenuState(model);
// model.switchState(menu);
gameOver = true;
score.saveScore(clearedEnemies);
}
player.decreaseLives();
// System.out.println(player.getLives());
}
}
// Here one would probably instead move the player and any
......
......@@ -2,6 +2,7 @@ package states;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import constants.Constants;
......@@ -25,12 +26,8 @@ public class Player {
private Image slidingImage;
private Image currImage = null;
private int passes = 0;
// private ImageView playerView;
// public double getPlayerHeight() {
// return playerHeight;
// }
private Rectangle bounds;
private double topPos = playerY;
......@@ -54,6 +51,8 @@ public class Player {
public Player(String playerImg) {
bounds = new Rectangle(playerX, topPos, Constants.playerWidth, Constants.playerHeight);
try {
image = new Image(new FileInputStream(playerImg));
//slidingImage = new Image(new FileInputStream(Constants.slidingPlayerImg));
......@@ -68,7 +67,9 @@ public class Player {
}
public double getRect() {
return topPos;
}
public Image getImage() {
......@@ -143,6 +144,7 @@ public class Player {
currImage = slidingImage;
topPos = 305.00;
}
......@@ -160,6 +162,7 @@ public class Player {
public void standUp() {
currImage = image;
topPos = playerY;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment