diff --git a/src/main/java/entity/Background.java b/src/main/java/entity/Background.java index 088b203e9c6f4c7f46c159c5caa2fd4860dbb32d..00151ba57acfc18e73f01328c9bef614de31c711 100644 --- a/src/main/java/entity/Background.java +++ b/src/main/java/entity/Background.java @@ -8,6 +8,9 @@ import java.awt.image.BufferedImage; import java.io.IOException; import core.GamePanel; +/** + * Class for the moving background + */ public class Background{ private GamePanel gp; @@ -25,10 +28,8 @@ public class Background{ this.keyH = keyH; getImage(); - } - public void getImage() { try { @@ -47,6 +48,9 @@ public class Background{ } } + /** + * Updates where the screen is drawn based on player 1 + */ public void update() { mapNum = gp.getKeyH().getMapNum(); @@ -63,6 +67,10 @@ public class Background{ } } + /** + * Method to draw the screen + * @param g2 graphics + */ public void draw(Graphics2D g2) { int worldCol = 0; diff --git a/src/main/java/entity/Entity.java b/src/main/java/entity/Entity.java index 1632a285ac2039efd10909cd2d8d775969844313..d6a2b1eecc6e7d228d8326b8c930b6c50504f165 100644 --- a/src/main/java/entity/Entity.java +++ b/src/main/java/entity/Entity.java @@ -4,6 +4,9 @@ import core.GamePanel; import java.awt.*; +/** + * Abstract super class for moving characters + */ public abstract class Entity { public GamePanel gp; @@ -24,11 +27,26 @@ public abstract class Entity { solid = new Rectangle(14 ,2,gp.tileSize-14, gp.tileSize-2); } + /** + * Method to make the character fall when its not standing on anything + */ public abstract void fall(); + /** + * Method to draw the character based on direction + * @param g2 graphics + */ public abstract void draw(Graphics2D g2); + /** + * Updates the character based on collision and direction. + * Updates sprite + */ public abstract void update(); + /** + * Get each image for the character + */ public abstract void getImage(); } + diff --git a/src/main/java/entity/Score.java b/src/main/java/entity/Score.java index 2f653e99194856d2fccc8ee679d4bd79c8d7e052..76ea7cfca5c6af73bfb09854c34c14eb277ba6e8 100644 --- a/src/main/java/entity/Score.java +++ b/src/main/java/entity/Score.java @@ -6,32 +6,39 @@ import core.DisplayText; import core.GamePanel; import gameState.Languages; - +/** + * Class to show score + */ public class Score extends DisplayText{ - //public int coins; private String showScore; GamePanel gp; - public Score(GamePanel gp) { this.gp = gp; showScore = new String(); } + /** + * Method to show score on the screen based on which language the game is in + */ public void showScore() { int score = gp.coins; - if(gp.getLang() == Languages.NORWEGIAN) { - showScore = "Proggys ølpenger: " + score; - } - else { - showScore = "Proggy's beer money: " + score; - } + if(gp.getLang() == Languages.NORWEGIAN) { + showScore = "Proggys ølpenger: " + score; + } + else { + showScore = "Proggy's beer money: " + score; + } } + /** + * Method to draw the score on the screen + * @param g2 graphics + */ public void draw(Graphics g2) { - this.setGraphics(g2); - this.draw(40); + this.setGraphics(g2); + this.draw(40); g2.setColor(Color.BLACK); g2.drawString(showScore, gp.maxWorldRow/2,54); } @@ -39,3 +46,4 @@ public class Score extends DisplayText{ + diff --git a/src/main/java/entity/enemies/EnemySetter.java b/src/main/java/entity/enemies/EnemySetter.java index fb2d756684ed64433579e282ce61bcdc0e2fa44c..d369d68378a854d08c8a1bd7676c789c16140a41 100644 --- a/src/main/java/entity/enemies/EnemySetter.java +++ b/src/main/java/entity/enemies/EnemySetter.java @@ -10,8 +10,7 @@ public class EnemySetter { public EnemySetter(GamePanel gp) { this.gp = gp; } - - + public void setUnicef() { String map = gp.getMapPath(); diff --git a/src/main/java/entity/enemies/EntityEnemy.java b/src/main/java/entity/enemies/EntityEnemy.java index f0064f8447294262da8d7c8f98e1a0abd6e690a3..07a99918a14ab5a3e292bffc134a5d5a279b4a02 100644 --- a/src/main/java/entity/enemies/EntityEnemy.java +++ b/src/main/java/entity/enemies/EntityEnemy.java @@ -7,6 +7,10 @@ import entity.Entity; import java.awt.Graphics2D; +/** + * Abstract superclass for the moving enemies + * Inherits from Entity + */ public abstract class EntityEnemy extends Entity { protected BufferedImage unicefLeft, unicefRight; @@ -17,6 +21,9 @@ public abstract class EntityEnemy extends Entity { weight = 8; } + /** + * Method to make the enemies move by themselves + */ public abstract void setAction(); @Override diff --git a/src/main/java/entity/player/Player1.java b/src/main/java/entity/player/Player1.java index ed22e344c5ed0dd3eac465495cade55d0db37d54..948a37d5a94dad92c96517ba8009a8964de4acb2 100644 --- a/src/main/java/entity/player/Player1.java +++ b/src/main/java/entity/player/Player1.java @@ -11,6 +11,10 @@ import core.CollisionCheck; import core.GamePanel; import core.KeyHandler; +/** + * Class for player 1 + * Inherits from PLayerEntity + */ public class Player1 extends PlayerEntity { KeyHandler keyH; @@ -109,7 +113,8 @@ public class Player1 extends PlayerEntity { } } - + + public void update() { if(keyH.upPressed1 == true || keyH.downPressed == true || keyH.leftPressed1 == true || keyH.rightPressed1 == true) { if(keyH.upPressed1 == true ) { @@ -167,58 +172,18 @@ public class Player1 extends PlayerEntity { } } - // gives abilities on player for the different power-ups - private void PowerUp() { - if (playerState == PlayerState.VOI) { - speed=7; - } - if (playerState == PlayerState.FASTER) { - speed=7; - } - if(playerState == PlayerState.NORMAL) { - speed = 5; - } - if(playerState == PlayerState.INVISIBLE) { - speed = 5; - } - } - - // jump function that makes proggy collide also when jumping + /** + * Jump method for player 1 + */ public void jumpP1() { - // Proggy needs to be on the ground while button is pressed in order to jump if(keyH.upPressed1 == true || (jumpStrength <= 0 && !onGround)) { super.jump(); } } - -/* - public void fall() { - String originalDir = direction; - direction = "down"; - collisionChecker.checkCollisionOnTile(); - if(colliding == false || onGround == false) { - onGround = false; - direction = originalDir; - worldY += gravity; - - if(gravity < 18) { - gravity += 1; - } - - - } - else { - onGround = true; - jumpStrength = 0; - worldY = ((worldY + speed)/gp.tileSize) *gp.tileSize; - direction = originalDir; - gravity = weight; - - } - } - */ - + /** + * Method to make it possible for player 1 to move left or right while in the air + */ private void moveWhileJumping () { String originalDir = previousDirection; int moveInAir = 0; @@ -242,12 +207,13 @@ public class Player1 extends PlayerEntity { direction = originalDir; } - + @Override public void draw(Graphics2D g2) { BufferedImage image = choseSprite(); g2.drawImage(image, playerX, playerY, gp.tileSize, gp.tileSize, null); } - + + @Override public void setGravity(int gravity) { this.gravity = gravity; } diff --git a/src/main/java/entity/player/Player2.java b/src/main/java/entity/player/Player2.java index 56813301afff499d8dff591f5aa9b08f39e74e85..6823dff5e7949fe25558978532bbec609b50de07 100644 --- a/src/main/java/entity/player/Player2.java +++ b/src/main/java/entity/player/Player2.java @@ -9,6 +9,9 @@ import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; +/** + * Class for player 2 + */ public class Player2 extends PlayerEntity { public KeyHandler keyH; @@ -73,29 +76,18 @@ public class Player2 extends PlayerEntity { } } - private void PowerUp() { - if (playerState == PlayerState.VOI) { - speed=7; - } - if (playerState == PlayerState.FASTER) { - speed=7; - } - if(playerState == PlayerState.NORMAL) { - speed = 5; - } - if(playerState == PlayerState.INVISIBLE) { - speed = 5; - } - } - - // jump function that makes proggy collide also when jumping + /** + * Jump method for player 2 + */ public void jumpP2() { - // Proggy needs to be on the ground while button is pressed in order to jump if(keyH.upPressed2 == true || (jumpStrength <= 0 && !onGround)) { super.jump(); } } + /** + * Method to make it possible for player 2 to move left or right while in the air + */ private void moveWhileJumping () { String originalDir = previousDirection; int moveInAir = 0; diff --git a/src/main/java/entity/player/PlayerEntity.java b/src/main/java/entity/player/PlayerEntity.java index 46a5a64c2695c107cc4edc1d820612f92c3fc7fe..7b2a2da266723b360d8104d44ec6b2bd89eae5dc 100644 --- a/src/main/java/entity/player/PlayerEntity.java +++ b/src/main/java/entity/player/PlayerEntity.java @@ -7,7 +7,10 @@ import entity.Entity; import java.awt.*; import java.awt.image.BufferedImage; - +/** + * Abstract super class for the two players + * Inherits from Entity + */ public abstract class PlayerEntity extends Entity { public PlayerState playerState; @@ -20,7 +23,6 @@ public abstract class PlayerEntity extends Entity { public CollisionCheck collisionChecker; - //brukes til å skape animasjon på spiller og fiender public int spriteCounter = 0; public int spriteNum = 1; @@ -28,6 +30,9 @@ public abstract class PlayerEntity extends Entity { super(gp); } + /** + * Set the default values for the players + */ public void setDefaultValues() { worldY = 512; speed = 5; @@ -38,12 +43,17 @@ public abstract class PlayerEntity extends Entity { gravity = weight; } + /** + * Set gravity + * @param gravity the gravity to be set + */ public void setGravity(int gravity) { this.gravity = gravity; } - public abstract void draw(Graphics2D g2); - + /** + * Method that updates sprite number to make it look like player is walking + */ protected void updateSprite() { // Updates picture that is used for player spriteCounter++; @@ -58,6 +68,29 @@ public abstract class PlayerEntity extends Entity { } } + /** + * Method to set the speed on player for the different power-ups + */ + protected void PowerUp() { + if (playerState == PlayerState.VOI) { + speed=7; + } + if (playerState == PlayerState.FASTER) { + speed=7; + } + if(playerState == PlayerState.NORMAL) { + speed = 5; + } + if(playerState == PlayerState.INVISIBLE) { + speed = 5; + } + } + + /** + * Method to make player jump + * Jumping image is based in what direction player previously had + * If player hits his head, he will fall + */ protected void jump() { //jump is initialized and depending on the previous direction we need different image sprites if(previousDirection == "right") { @@ -117,6 +150,10 @@ public abstract class PlayerEntity extends Entity { } } + /** + * Method that chooses which image is to be drawn based on sprite number + * @return the image to be drawn + */ protected BufferedImage choseSprite() { BufferedImage image = null; switch(direction) { @@ -160,8 +197,6 @@ public abstract class PlayerEntity extends Entity { } return image; } - - } diff --git a/src/main/java/entity/player/PlayerState.java b/src/main/java/entity/player/PlayerState.java index c503b8faf5eba1c8de28c439e834bf51d7dec601..cad6c09cdd7dc8b11fde5a1600dca032fa3fb8a7 100644 --- a/src/main/java/entity/player/PlayerState.java +++ b/src/main/java/entity/player/PlayerState.java @@ -1,6 +1,11 @@ package entity.player; -// Each power up will set a PlayerState with corresponding abilities. Default is NORMAL +/** + * Enum for each player state + * Each power up will set a PlayerState with corresponding abilities. + * Default for player 1 is NORMAL + * Default for player 2 is INVISIBLE + */ public enum PlayerState { NORMAL, INVISIBLE, diff --git a/src/main/java/gameState/AfterLevels.java b/src/main/java/gameState/AfterLevels.java index db98e5d787a93b9b5bff1139e99dd738e217d9ac..980f3bccf0f56488b5cdef2ab0881be0a15173c6 100644 --- a/src/main/java/gameState/AfterLevels.java +++ b/src/main/java/gameState/AfterLevels.java @@ -38,6 +38,5 @@ public class AfterLevels extends GameScreen{ } - } diff --git a/src/main/java/gameState/GameOver.java b/src/main/java/gameState/GameOver.java index aaf19503ad739cc5b1161c5ef9afb96f850c3bdf..71014ea282d612225a98f435f7e59ae95d4ad6d0 100644 --- a/src/main/java/gameState/GameOver.java +++ b/src/main/java/gameState/GameOver.java @@ -15,7 +15,11 @@ public class GameOver extends GameScreen { this.gp = gp; widthOfScreen = gp.screenWidth; } - + + /** + * Method that calls on methods from gamePanel to check if + * the time has run out or one of the players is out of bounds + */ public void update() { isGameOver = gp.getGameOver(); isOutOfBounds = gp.getOutOfBounds(); @@ -84,15 +88,25 @@ public class GameOver extends GameScreen { } } } - + + /** + * @return true if time has run out + */ public boolean gameOver() { return isGameOver; } - + + /** + * @return true if one of the players is out of bounds + */ public boolean gameOverBounds() { return isOutOfBounds; } - + + /** + * Turns off game over music + * Is used when player choses to play again after game over + */ public void restart() { gameOverMusic = false; } diff --git a/src/main/java/gameState/GameScreen.java b/src/main/java/gameState/GameScreen.java index c9af786cf0c72ceafdc171f3e3a901d23e68b1f4..fa88f5077b66c1367d7f394f209b8a34690b7f01 100644 --- a/src/main/java/gameState/GameScreen.java +++ b/src/main/java/gameState/GameScreen.java @@ -4,11 +4,18 @@ import core.DisplayText; import core.GamePanel; import java.awt.*; +/** + * This is an abstract super class for the different gameScreens + */ public abstract class GameScreen extends DisplayText { GamePanel gp; public int cmd = 0; + /** + * Method to draw the screen based on which state the game is in + * @param g2 graphics + */ public abstract void draw(Graphics g2); } diff --git a/src/main/java/gameState/GameState.java b/src/main/java/gameState/GameState.java index 217b5c1bb5e625c2c2745a163259788ccf46461e..0cb559f73a8a5e67d1ac2d336648ddda8e3adc19 100644 --- a/src/main/java/gameState/GameState.java +++ b/src/main/java/gameState/GameState.java @@ -1,5 +1,8 @@ package gameState; +/** + * Enum for the different game states and game screens + */ public enum GameState { LANGUAGE_MENU, diff --git a/src/main/java/gameState/LanguageScreen.java b/src/main/java/gameState/LanguageScreen.java index 7c552f6707aa239d3c120bb3ce8d4783dd851e0a..fd939c2556fb7792797440aec2235e264c412ead 100644 --- a/src/main/java/gameState/LanguageScreen.java +++ b/src/main/java/gameState/LanguageScreen.java @@ -24,7 +24,10 @@ public class LanguageScreen extends GameScreen { } } - + + /** + * Method to draw animation on the language screen + */ public void update() { x += 2; if (x == gp.tileSize*3) { diff --git a/src/main/java/gameState/Languages.java b/src/main/java/gameState/Languages.java index e01bf3ed5133215d39beac804397a7061ca96fbd..c181370b9c98d6bbe9fc67fc776a1cf55b888eae 100644 --- a/src/main/java/gameState/Languages.java +++ b/src/main/java/gameState/Languages.java @@ -1,5 +1,8 @@ package gameState; +/** + * Enum for the two choices of language + */ public enum Languages { NORWEGIAN,