optimized player model scaling
This commit is contained in:
14
src/de/miaurizius/jgame2d/core/Utility.java
Normal file
14
src/de/miaurizius/jgame2d/core/Utility.java
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,9 +1,6 @@
|
|||||||
package de.miaurizius.jgame2d.entity;
|
package de.miaurizius.jgame2d.entity;
|
||||||
|
|
||||||
import de.miaurizius.jgame2d.core.Boot;
|
import de.miaurizius.jgame2d.core.*;
|
||||||
import de.miaurizius.jgame2d.core.Direction;
|
|
||||||
import de.miaurizius.jgame2d.core.GamePanel;
|
|
||||||
import de.miaurizius.jgame2d.core.KeyHandler;
|
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -47,18 +44,23 @@ public class Player extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void getPlayerImage() {
|
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 {
|
try {
|
||||||
up1 = ImageIO.read(new FileInputStream("assets/player/boy_up_1.png"));
|
return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/player/" + name + ".png")), panel.tileSize, panel.tileSize);
|
||||||
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"));
|
|
||||||
} catch (IOException e) {
|
} 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() {
|
public void update() {
|
||||||
@@ -132,7 +134,7 @@ public class Player extends Entity {
|
|||||||
case LEFT -> (spriteNum == 1) ? left1 : left2;
|
case LEFT -> (spriteNum == 1) ? left1 : left2;
|
||||||
case RIGHT -> (spriteNum == 1) ? right1 : right2;
|
case RIGHT -> (spriteNum == 1) ? right1 : right2;
|
||||||
};
|
};
|
||||||
graphics2d.drawImage(image, screenX, screenY, panel.tileSize, panel.tileSize, null);
|
graphics2d.drawImage(image, screenX, screenY, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package de.miaurizius.jgame2d.tile;
|
|||||||
|
|
||||||
import de.miaurizius.jgame2d.core.Boot;
|
import de.miaurizius.jgame2d.core.Boot;
|
||||||
import de.miaurizius.jgame2d.core.GamePanel;
|
import de.miaurizius.jgame2d.core.GamePanel;
|
||||||
|
import de.miaurizius.jgame2d.core.Utility;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -44,10 +45,7 @@ public class TileManager {
|
|||||||
BufferedImage scaledImage;
|
BufferedImage scaledImage;
|
||||||
for (Tile tile : tile) {
|
for (Tile tile : tile) {
|
||||||
if(tile == null) continue;
|
if(tile == null) continue;
|
||||||
scaledImage = new BufferedImage(panel.tileSize, panel.tileSize, tile.image.getType());
|
tile.image = Utility.scaleImage(tile.image, panel.tileSize, panel.tileSize);
|
||||||
Graphics2D g2d = scaledImage.createGraphics();
|
|
||||||
g2d.drawImage(tile.image, 0, 0, panel.tileSize, panel.tileSize, null);
|
|
||||||
tile.image = scaledImage;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +90,7 @@ public class TileManager {
|
|||||||
worldX - panel.tileSize < panel.player.worldX + panel.player.screenX &&
|
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 &&
|
||||||
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++;
|
worldCol++;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user