diff --git a/pixels/bin/bz/bronze/pixels/engine/Renderer.class b/pixels/bin/bz/bronze/pixels/engine/Renderer.class index b7e4630..3507105 100644 Binary files a/pixels/bin/bz/bronze/pixels/engine/Renderer.class and b/pixels/bin/bz/bronze/pixels/engine/Renderer.class differ diff --git a/pixels/bin/bz/bronze/pixels/game/GameManager.class b/pixels/bin/bz/bronze/pixels/game/GameManager.class index 026ee46..746565e 100644 Binary files a/pixels/bin/bz/bronze/pixels/game/GameManager.class and b/pixels/bin/bz/bronze/pixels/game/GameManager.class differ diff --git a/pixels/src/bz/bronze/pixels/engine/Renderer.java b/pixels/src/bz/bronze/pixels/engine/Renderer.java index acbfa5b..637dded 100644 --- a/pixels/src/bz/bronze/pixels/engine/Renderer.java +++ b/pixels/src/bz/bronze/pixels/engine/Renderer.java @@ -35,8 +35,37 @@ public class Renderer { } public void drawImage(Image image, int offX, int offY) { - for (int y = 0; y < image.getH(); y++) { - for (int x = 0; x < image.getW(); x++) { + int xAdjust = 0; + int yAdjust = 0; + int widthAdjust = image.getW(); + int heightAdjust = image.getH(); + + if (offX < -image.getW()) { return; } + + if (offY < -image.getH()) { return; } + + if (offX >= pW) { return; } + + if (offY >= pH) { return; } + + if (offX < 0) { + xAdjust -= offX; + } + + if (offY < 0) { + yAdjust -= offY; + } + + if (widthAdjust + offX >= pW) { + widthAdjust -= widthAdjust + offX - pW; + } + + if (heightAdjust + offY >= pH) { + heightAdjust -= heightAdjust + offY - pH; + } + + for (int y = yAdjust; y < heightAdjust; y++) { + for (int x = xAdjust; x < widthAdjust; x++) { setPixel(x + offX, y + offY, image.getP()[x + y * image.getW()]); } } diff --git a/pixels/src/bz/bronze/pixels/game/GameManager.java b/pixels/src/bz/bronze/pixels/game/GameManager.java index bb59da3..df6dffe 100644 --- a/pixels/src/bz/bronze/pixels/game/GameManager.java +++ b/pixels/src/bz/bronze/pixels/game/GameManager.java @@ -1,5 +1,7 @@ package bz.bronze.pixels.game; +import java.awt.event.KeyEvent; + import bz.bronze.pixels.engine.AbstractGame; import bz.bronze.pixels.engine.GameContainer; import bz.bronze.pixels.engine.Renderer; @@ -16,7 +18,9 @@ public class GameManager extends AbstractGame { @Override public void update(float dt) { - + if (gc.input.isKey(KeyEvent.VK_ESCAPE)) { + System.exit(0); + } } @Override