From 538ba5f06bca5ed33d534db05897ae9b017a69f3 Mon Sep 17 00:00:00 2001 From: Fp_Sviat Date: Mon, 1 Jun 2026 12:18:45 +0300 Subject: [PATCH] done scaling --- res/objecttypes.xml | 14 ++++---- res/маг_2.png | Bin 0 -> 21035 bytes src/gui/EditableCanvas.java | 31 ++++++++++++++---- .../DrawboxRectengleRenderingFunction.java | 19 ++++++----- .../render/HitboxCircleRenderingFunction.java | 22 ++++++++----- .../HitboxRectengleRenderingFunction.java | 10 +++--- src/model/Entity.java | 8 +++++ 7 files changed, 70 insertions(+), 34 deletions(-) create mode 100644 res/маг_2.png diff --git a/res/objecttypes.xml b/res/objecttypes.xml index b579d49..c0f0b38 100644 --- a/res/objecttypes.xml +++ b/res/objecttypes.xml @@ -2,23 +2,23 @@ - - + + - + - - + + - - + + diff --git a/res/маг_2.png b/res/маг_2.png new file mode 100644 index 0000000000000000000000000000000000000000..dc01227f14770e9ca8c86d5f37025073c268da08 GIT binary patch literal 21035 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 literal 0 HcmV?d00001 diff --git a/src/gui/EditableCanvas.java b/src/gui/EditableCanvas.java index f29e267..5f2dcde 100644 --- a/src/gui/EditableCanvas.java +++ b/src/gui/EditableCanvas.java @@ -1,9 +1,9 @@ package gui; -import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; @@ -26,6 +26,7 @@ public class EditableCanvas extends JPanel implements MouseListener, MouseMotion ShapeRenderingFunction renderingFunction; Entity entity; BufferedImage image; + private float scaleIndex = 1; public EditableCanvas() { @@ -83,18 +84,34 @@ public class EditableCanvas extends JPanel implements MouseListener, MouseMotion protected void paintComponent(Graphics g) { super.paintComponent(g); if(image!=null) { - g.drawImage(image, 0, 0, this); - g.setColor(Color.darkGray); - g.drawRect(0, 0, image.getWidth(), image.getHeight()); - g.setColor(Color.RED); - g.fillOval(image.getWidth()/2, image.getHeight(), 2, 2); + calculatedScaledIndex(); + g.drawImage(image, 0, 0, (int) (image.getWidth() * scaleIndex), + (int) (image.getHeight() * scaleIndex), this); g.setColor(Color.green); } if(entity != null) { drawing((Graphics2D)g); } } - + //нерабочая херня + public void calculatedScaledIndex() { + int imageWidth = image.getWidth(), imageHeight = image.getHeight(); + float iconMaxWidth = this.getWidth(); + float iconMaxHeight = this.getHeight(); + float scaleFactorX = iconMaxWidth / imageWidth, scaleFactorY = iconMaxHeight / imageHeight; + scaleIndex = scaleFactorX < scaleFactorY ? scaleFactorX : scaleFactorY; + entity.setScaleIndex(scaleIndex); + System.out.println("imageWidth: "+imageWidth); + System.out.println("imageHeight: "+imageHeight); + System.out.println("iconMaxWidth: "+iconMaxWidth); + System.out.println("iconMaxHeight: "+iconMaxHeight); + + System.out.println("scaleFactorX: "+scaleFactorX); + System.out.println("scaleFactorY: "+scaleFactorY); + System.out.println("scaleIndex: "+scaleIndex); + System.out.println("_____________________: "); + } + public void setEntity(Entity e) { entity = e; drawboxRectengleRenderFunct.setEntityInDrawboxRectengle(e); diff --git a/src/gui/render/DrawboxRectengleRenderingFunction.java b/src/gui/render/DrawboxRectengleRenderingFunction.java index 937d1d4..82bc45b 100644 --- a/src/gui/render/DrawboxRectengleRenderingFunction.java +++ b/src/gui/render/DrawboxRectengleRenderingFunction.java @@ -22,12 +22,15 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction private List listeners = new ArrayList<>(); Entity entity; Logger logger = Logger.getLogger("gui.DrawboxRectangleEditor"); + private float scaleIndex = 1; + public DrawboxRectengleRenderingFunction() { - + } @Override public void drawing(Graphics2D g) { + scaleIndex = entity.getScaleIndex(); Drawbox drawbox = entity.getDrawbox(); drawboxPoints = drawbox.getDrawboxlistPoints(); basePoints = drawbox.getbaseListPoints(); @@ -39,13 +42,13 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction if(drawboxPoints.size() >= 1 && drawboxPoints.size() < 4) { Point lastPoint = drawboxPoints.get(drawboxPoints.size()-1); - g.drawLine((int)lastPoint.x, (int)lastPoint.y, (int)currentPoint.x, (int)currentPoint.y); + g.drawLine((int)(lastPoint.x*scaleIndex), (int)(lastPoint.y*scaleIndex), (int)(currentPoint.x*scaleIndex), (int)(currentPoint.y*scaleIndex)); for(int i = 0; i < drawboxPoints.size()-1;i++) { int x1 = (int)drawboxPoints.get(i).x; int y1 = (int)drawboxPoints.get(i).y; int x2 = (int)drawboxPoints.get(i+1).x; int y2 = (int)drawboxPoints.get(i+1).y; - g.drawLine(x1, y1, x2, y2); + g.drawLine((int)(x1*scaleIndex), (int)(y1*scaleIndex), (int)(x2*scaleIndex), (int)(y2*scaleIndex)); } } else { for(int i = 0; i < drawboxPoints.size();i++) { @@ -53,7 +56,7 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction int y1 = (int)drawboxPoints.get(i % drawboxPoints.size()).y; int x2 = (int)drawboxPoints.get((i+1) % drawboxPoints.size()).x; int y2 = (int)drawboxPoints.get((i+1) % drawboxPoints.size()).y; - g.drawLine(x1, y1, x2, y2); + g.drawLine((int)(x1*scaleIndex), (int)(y1*scaleIndex), (int)(x2*scaleIndex), (int)(y2*scaleIndex)); } // ОТРИСОВКА ОСНОВАНИЯ g.setColor(Color.BLUE); @@ -62,7 +65,7 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction int y1 = (int)basePoints.get(i).y; int x2 = (int)basePoints.get(i+1).x; int y2 = (int)basePoints.get(i+1).y; - g.drawLine(x1, y1+3, x2, y2+3); + g.drawLine((int)(x1*scaleIndex), (int)(y1*scaleIndex), (int)(x2*scaleIndex), (int)(y2*scaleIndex)); } } @@ -71,7 +74,7 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction @Override public void mousePressed(MouseEvent e) { if(drawboxPoints.size() < 4) { - Point p = new Point(e.getX(), e.getY()); + Point p = new Point(currentPoint.x, currentPoint.y); drawboxPoints.add(p); if(drawboxPoints.size() == 4) { sortingDrawboxPoints(); @@ -88,8 +91,8 @@ public class DrawboxRectengleRenderingFunction implements ShapeRenderingFunction @Override public void mouseMoved(MouseEvent e) { - currentPoint.x = e.getX(); - currentPoint.y = e.getY(); + currentPoint.x = e.getX()/scaleIndex; + currentPoint.y = e.getY()/scaleIndex; } /*Точки должны идти в определенном порядке: diff --git a/src/gui/render/HitboxCircleRenderingFunction.java b/src/gui/render/HitboxCircleRenderingFunction.java index dcfb6cf..a95dc72 100644 --- a/src/gui/render/HitboxCircleRenderingFunction.java +++ b/src/gui/render/HitboxCircleRenderingFunction.java @@ -16,37 +16,43 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction { Point currentIsoPoint = new Point(0,0); int currentDiametrX=0; Entity entity; + private float scaleIndex = 1; private List listeners = new ArrayList<>(); public void setEntityInHitboxCircle(Entity e) { entity = e; } - + @Override public void drawing(Graphics2D g) { + scaleIndex = entity.getScaleIndex(); HitboxCircle nowHitbox = (HitboxCircle)entity.getHitbox(); if(nowHitbox.getRadius()!=0) { - g.drawOval((int)nowHitbox.getCurrentRefPoint().x, (int)(nowHitbox.getCurrentRefPoint().y-(nowHitbox.getDiametrY()/2)), (int)nowHitbox.getDiametrX(), (int)(nowHitbox.getDiametrY())); + g.drawOval((int)(nowHitbox.getCurrentRefPoint().x*scaleIndex), (int)((nowHitbox.getCurrentRefPoint().y-(nowHitbox.getDiametrY()/2))*scaleIndex ), (int)(nowHitbox.getDiametrX()*scaleIndex ), (int)(nowHitbox.getDiametrY()*scaleIndex )); // System.out.println("READY: diametrX = "+nowHitbox.getDiametrX()+ ". diametrY = "+nowHitbox.getDiametrY()); // System.out.println("READY: coordX = "+(int)nowHitbox.getCurrentRefPoint().x+ ". coordY = "+(int)(nowHitbox.getCurrentRefPoint().y-(nowHitbox.getDiametrY()/2))); }else if(firstIsoPoint != null) { - currentDiametrX = Math.abs((int)firstIsoPoint.x-(int)currentIsoPoint.x); + currentDiametrX = Math.abs((int)(firstIsoPoint.x )-(int)(currentIsoPoint.x )); // System.out.println("CURRENT: coordX = "+(int)firstIsoPoint.x+ ". coordX = "+(int)(firstIsoPoint.y-currentDiametrX/4)); // System.out.println("CURRENT: diametrX = "+currentDiametrX+ ". diametrY = "+currentDiametrX/2); - g.drawOval((int)firstIsoPoint.x, (int)(firstIsoPoint.y-currentDiametrX/4), (int)currentDiametrX, (int)currentDiametrX/2); + g.drawOval((int)(firstIsoPoint.x*scaleIndex), (int)((firstIsoPoint.y - currentDiametrX/4)*scaleIndex), (int)(currentDiametrX*scaleIndex ), (int)(currentDiametrX/2*scaleIndex )); } } + + //это рисование. Во время рисования, нам необходимо наоборот делить текущие координаты которые мы нажимаем на scaleIndex. + //так мы получим актуальные данные в entity + //и уже они пусть обратно умножаются и в drawing отрисовывается все правильно. @Override public void mousePressed(MouseEvent e) { HitboxCircle nowHitbox = (HitboxCircle)entity.getHitbox(); if(nowHitbox.getRadius()==0 && firstIsoPoint == null) { - firstIsoPoint = new Point(e.getX(), e.getY()); + firstIsoPoint = new Point(currentIsoPoint.x, currentIsoPoint.y); }else if(nowHitbox.getRadius()==0 && firstIsoPoint != null) { //Формула высчитывания радиуса из диаметров circle. nowHitbox.getCurrentRefPoint().setXY(firstIsoPoint.x, firstIsoPoint.y); - nowHitbox.setDiametrXY(Math.abs(firstIsoPoint.x-e.getX()),Math.abs((firstIsoPoint.x-e.getX())/2)); + nowHitbox.setDiametrXY(Math.abs(firstIsoPoint.x-currentIsoPoint.x),Math.abs((firstIsoPoint.x-currentIsoPoint.x)/2)); System.out.println("X = "+nowHitbox.getDiametrX()+ ". Y = "+nowHitbox.getDiametrY()); float temp = (float)Math.sqrt(2); nowHitbox.setRadius((nowHitbox.getDiametrY()/2)*temp); @@ -64,8 +70,8 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction { @Override public void mouseMoved(MouseEvent e) { - currentIsoPoint.x = e.getX(); - currentIsoPoint.y = e.getY(); + currentIsoPoint.x = e.getX()/scaleIndex; + currentIsoPoint.y = e.getY()/scaleIndex; } public void functionClearHitboxJButton() { diff --git a/src/gui/render/HitboxRectengleRenderingFunction.java b/src/gui/render/HitboxRectengleRenderingFunction.java index 8eaf1ef..57dc407 100644 --- a/src/gui/render/HitboxRectengleRenderingFunction.java +++ b/src/gui/render/HitboxRectengleRenderingFunction.java @@ -22,6 +22,7 @@ public class HitboxRectengleRenderingFunction implements ShapeRenderingFunction Entity entity; private List LocalListPointsIso = new ArrayList(); private List LocalListPointsCartesian = new ArrayList(); + private float scaleIndex = 1; public List getLocalListPointsIso() { return LocalListPointsIso; @@ -37,6 +38,7 @@ public class HitboxRectengleRenderingFunction implements ShapeRenderingFunction @Override public void drawing(Graphics2D g) { + scaleIndex = entity.getScaleIndex(); HitboxRectangle nowHitbox = (HitboxRectangle)entity.getHitbox(); int x1,y1,x2,y2; if(nowHitbox.getListPointsIso().size() == 4) { @@ -56,13 +58,13 @@ public class HitboxRectengleRenderingFunction implements ShapeRenderingFunction y1 = (int)listPointsIso.get(i % size).y; x2 = (int)listPointsIso.get((i+1) % size).x; y2 = (int)listPointsIso.get((i+1) % size).y; - g.drawLine(x1, y1, x2, y2); + g.drawLine((int)(x1*scaleIndex), (int)(y1*scaleIndex), (int)(x2*scaleIndex), (int)(y2*scaleIndex)); } x1 = (int)listPointsIso.get(0).x; y1 = (int)listPointsIso.get(0).y; x2 = (int)listPointsIso.get(3).x; y2 = (int)listPointsIso.get(3).y; - g.drawLine(x1, y1, x2, y2); + g.drawLine((int)(x1*scaleIndex), (int)(y1*scaleIndex), (int)(x2*scaleIndex), (int)(y2*scaleIndex)); } @Override @@ -93,8 +95,8 @@ public class HitboxRectengleRenderingFunction implements ShapeRenderingFunction @Override public void mouseMoved(MouseEvent e) { - currentIsoPoint.x = e.getX(); - currentIsoPoint.y = e.getY(); + currentIsoPoint.x = e.getX()/scaleIndex; + currentIsoPoint.y = e.getY()/scaleIndex; HitboxRectangle nowHitbox = (HitboxRectangle)entity.getHitbox(); if(entity!=null) { if(firstIsoPoint != null && nowHitbox.getListPointsIso().size() == 0) { diff --git a/src/model/Entity.java b/src/model/Entity.java index d2533f9..c925a0c 100644 --- a/src/model/Entity.java +++ b/src/model/Entity.java @@ -10,6 +10,7 @@ public class Entity { private BufferedImage thisImage; private int width = 0; private int height = 0; + private float scaleIndex = 1; public Entity(String name, String drawbox, String hitbox, BufferedImage sprite) { thisName = new String(name); @@ -101,4 +102,11 @@ public class Entity { public void setHeight(int height) { this.height = height; } + + public void setScaleIndex(float index) { + scaleIndex = index; + } + public float getScaleIndex() { + return scaleIndex; + } }