diff --git a/src/killer_sokoban/Main.java b/src/killer_sokoban/Main.java index 3db16ed6a47c4b80e545b3875ad44b7a08dc75ac..126919bb7687899231d5eb0ddd877b8412842791 100644 --- a/src/killer_sokoban/Main.java +++ b/src/killer_sokoban/Main.java @@ -61,7 +61,7 @@ public class Main extends Application { // Ablak felépítése primaryStage.setTitle("My super killer sokoban"); Group root = new Group(); - Canvas canvas = new Canvas(300, 250); + Canvas canvas = new Canvas(600, 480); view.setCanvas(canvas); root.getChildren().add(canvas); primaryStage.setScene(new Scene(root)); diff --git a/src/killer_sokoban/View.java b/src/killer_sokoban/View.java index 3ec50947c16c3c6d6ef0a087f934ace9bbcce470..cea8c00ae0a299a714dc5f2710a3db8d962b8097 100644 --- a/src/killer_sokoban/View.java +++ b/src/killer_sokoban/View.java @@ -1,9 +1,12 @@ package killer_sokoban; + import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; +import javafx.scene.image.Image; import javafx.scene.paint.Color; +import javafx.scene.paint.Paint; public class View { @@ -11,9 +14,19 @@ public class View { private int y, x; private GraphicsContext gc; - private int tileSize=20; - private int cratemargin=3; + private int tileSize=32; + private Image honeyImg=new Image("file:GIMPimages/Honey.png"); + private Image oilImg=new Image("file:GIMPimages/Oil.png"); + private Image crateImg=new Image("file:GIMPimages/Crate.png"); + private Image w1Img=new Image("file:GIMPimages/w1.png"); + private Image w2Img=new Image("file:GIMPimages/w2.png"); + private Image holeImg=new Image("file:GIMPimages/Hole.png"); + private Image simpleFieldImg=new Image("file:GIMPimages/SimpleField.png"); + private Image switchFieldImg=new Image("file:GIMPimages/SwitchField.png"); + private Image targetFieldImg=new Image("file:GIMPimages/TargetField.png"); + private Image wallImg=new Image("file:GIMPimages/Wall.png"); + public void init(int line, int column) { this.line=line; @@ -22,11 +35,14 @@ public class View { public void setCanvas(Canvas c) { this.gc=c.getGraphicsContext2D(); + } public void update() { - gc.clearRect(0, 0, column*tileSize, line*tileSize); + //gc.clearRect(0, 0, column*tileSize, line*tileSize); + gc.setFill(Color.rgb(92, 92, 92)); + gc.fillRect(0, 0, column*tileSize, line*tileSize); for (x=0;x<column;x++) for (y=0;y<line;y++) Main.drawRequiredFor(y,x); @@ -34,21 +50,22 @@ public class View { } public void drawAbstract() { - gc.setLineWidth(1); + gc.setLineWidth(0.1); gc.setStroke(Color.BLUE); gc.strokeRect(x*tileSize, y*tileSize, tileSize, tileSize); } - public void drawSimpleField() { + public void drawSimpleField() { + //gc.drawImage(simpleFieldImg, x*tileSize, y*tileSize); } public void drawTargetField() { gc.setFill(Color.YELLOW); - gc.fillRect(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(targetFieldImg, x*tileSize, y*tileSize); } public void drawHole() { gc.setFill(Color.BLACK); - gc.fillRect(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(holeImg, x*tileSize, y*tileSize); } public void drawSwitchableHole() { gc.setFill(Color.PINK); @@ -56,29 +73,28 @@ public class View { } public void drawSwitchField() { gc.setFill(Color.PLUM); - gc.fillRect(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(switchFieldImg, x*tileSize, y*tileSize); } public void drawWall() { gc.setFill(Color.GREY); - gc.fillRect(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(wallImg, x*tileSize, y*tileSize); } public void drawOil() { gc.setFill(Color.SLATEGREY); - gc.fillOval(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(oilImg, x*tileSize, y*tileSize); } public void drawHoney() { gc.setFill(Color.GOLD); - gc.fillOval(x*tileSize, y*tileSize, tileSize, tileSize); + gc.drawImage(honeyImg, x*tileSize, y*tileSize); } public void drawWorker() { gc.setFill(Color.GREEN); - gc.fillPolygon(new double[]{(x+0.1)*tileSize, (x+0.9)*tileSize, (x+0.5)*tileSize}, - new double[]{(y+0.9)*tileSize, (y+0.9)*tileSize, (y+0.1)*tileSize}, 3); + gc.drawImage(w1Img, x*tileSize, y*tileSize); } public void drawCrate() { gc.setFill(Color.ORANGE); - gc.fillRect(x*tileSize+cratemargin, y*tileSize+cratemargin, tileSize-2*cratemargin, tileSize-2*cratemargin); + gc.drawImage(crateImg, x*tileSize, y*tileSize); }