diff --git a/src/de/miaurizius/jgame2d/core/Utility.java b/src/de/miaurizius/jgame2d/core/Utility.java new file mode 100644 index 0000000..45c5602 --- /dev/null +++ b/src/de/miaurizius/jgame2d/core/Utility.java @@ -0,0 +1,14 @@ +package de.miaurizius.jgame2d.core; + +import java.awt.image.BufferedImage; + +public class Utility { + + public static BufferedImage scaleImage(BufferedImage img, int width, int height) { + BufferedImage scl = new BufferedImage(width, height, img.getType()); + scl = new BufferedImage(width, height, img.getType()); + scl.createGraphics().drawImage(img, 0, 0, width, height, null); + return scl; + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index 0a23d19..191aee9 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -1,9 +1,6 @@ package de.miaurizius.jgame2d.entity; -import de.miaurizius.jgame2d.core.Boot; -import de.miaurizius.jgame2d.core.Direction; -import de.miaurizius.jgame2d.core.GamePanel; -import de.miaurizius.jgame2d.core.KeyHandler; +import de.miaurizius.jgame2d.core.*; import javax.imageio.ImageIO; import java.awt.*; @@ -47,18 +44,23 @@ public class Player extends Entity { } public void getPlayerImage() { + up1 = initPlayerImage("boy_up_1"); + up2 = initPlayerImage("boy_up_2"); + down1 = initPlayerImage("boy_down_1"); + down2 = initPlayerImage("boy_down_2"); + left1 = initPlayerImage("boy_left_1"); + left2 = initPlayerImage(("boy_left_2")); + right1 = initPlayerImage(("boy_right_1")); + right2 = initPlayerImage(("boy_right_2")); + } + + public BufferedImage initPlayerImage(String name) { try { - up1 = ImageIO.read(new FileInputStream("assets/player/boy_up_1.png")); - up2 = ImageIO.read(new FileInputStream("assets/player/boy_up_2.png")); - down1 = ImageIO.read(new FileInputStream("assets/player/boy_down_1.png")); - down2 = ImageIO.read(new FileInputStream("assets/player/boy_down_2.png")); - left1 = ImageIO.read(new FileInputStream("assets/player/boy_left_1.png")); - left2 = ImageIO.read(new FileInputStream("assets/player/boy_left_2.png")); - right1 = ImageIO.read(new FileInputStream("assets/player/boy_right_1.png")); - right2 = ImageIO.read(new FileInputStream("assets/player/boy_right_2.png")); + return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/player/" + name + ".png")), panel.tileSize, panel.tileSize); } catch (IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load image", e); + Boot.logger.log(Level.SEVERE, "Could not load player-image", e); } + return null; } public void update() { @@ -132,7 +134,7 @@ public class Player extends Entity { case LEFT -> (spriteNum == 1) ? left1 : left2; case RIGHT -> (spriteNum == 1) ? right1 : right2; }; - graphics2d.drawImage(image, screenX, screenY, panel.tileSize, panel.tileSize, null); + graphics2d.drawImage(image, screenX, screenY, null); } } diff --git a/src/de/miaurizius/jgame2d/tile/TileManager.java b/src/de/miaurizius/jgame2d/tile/TileManager.java index 0474af3..42b9fac 100644 --- a/src/de/miaurizius/jgame2d/tile/TileManager.java +++ b/src/de/miaurizius/jgame2d/tile/TileManager.java @@ -2,6 +2,7 @@ package de.miaurizius.jgame2d.tile; import de.miaurizius.jgame2d.core.Boot; import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.core.Utility; import javax.imageio.ImageIO; import java.awt.*; @@ -44,10 +45,7 @@ public class TileManager { BufferedImage scaledImage; for (Tile tile : tile) { if(tile == null) continue; - scaledImage = new BufferedImage(panel.tileSize, panel.tileSize, tile.image.getType()); - Graphics2D g2d = scaledImage.createGraphics(); - g2d.drawImage(tile.image, 0, 0, panel.tileSize, panel.tileSize, null); - tile.image = scaledImage; + tile.image = Utility.scaleImage(tile.image, panel.tileSize, panel.tileSize); } } @@ -92,7 +90,7 @@ public class TileManager { worldX - panel.tileSize < panel.player.worldX + panel.player.screenX && worldY + panel.tileSize > panel.player.worldY - panel.player.screenY && worldY - panel.tileSize < panel.player.worldY + panel.player.screenY - ) graphics2D.drawImage(tile[tileNum].image, screenX, screenY, panel.tileSize, panel.tileSize, null); + ) graphics2D.drawImage(tile[tileNum].image, screenX, screenY, null); worldCol++;