centering metadata and Image in EditableCanvas

This commit is contained in:
2026-06-03 14:53:23 +03:00
parent 538ba5f06b
commit 6bf0177927
5 changed files with 77 additions and 39 deletions

View File

@ -17,18 +17,23 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction {
int currentDiametrX=0;
Entity entity;
private float scaleIndex = 1;
Point centeringImage;
private List<EntityHitboxChangedListener> listeners = new ArrayList<>();
public void setEntityInHitboxCircle(Entity e) {
entity = e;
}
public void setCenteringImagePoint(Point p) {
centeringImage = p;
}
@Override
public void drawing(Graphics2D g) {
scaleIndex = entity.getScaleIndex();
HitboxCircle nowHitbox = (HitboxCircle)entity.getHitbox();
if(nowHitbox.getRadius()!=0) {
g.drawOval((int)(nowHitbox.getCurrentRefPoint().x*scaleIndex), (int)((nowHitbox.getCurrentRefPoint().y-(nowHitbox.getDiametrY()/2))*scaleIndex ), (int)(nowHitbox.getDiametrX()*scaleIndex ), (int)(nowHitbox.getDiametrY()*scaleIndex ));
g.drawOval((int)(nowHitbox.getCurrentRefPoint().x*scaleIndex+centeringImage.x), (int)((nowHitbox.getCurrentRefPoint().y-nowHitbox.getDiametrY()/2)*scaleIndex+centeringImage.y ), (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)));
@ -36,7 +41,7 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction {
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*scaleIndex), (int)((firstIsoPoint.y - currentDiametrX/4)*scaleIndex), (int)(currentDiametrX*scaleIndex ), (int)(currentDiametrX/2*scaleIndex ));
g.drawOval((int)(firstIsoPoint.x*scaleIndex+centeringImage.x), (int)((firstIsoPoint.y - currentDiametrX/4)*scaleIndex+centeringImage.y), (int)(currentDiametrX*scaleIndex ), (int)(currentDiametrX/2*scaleIndex ));
}
}
@ -70,8 +75,8 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction {
@Override
public void mouseMoved(MouseEvent e) {
currentIsoPoint.x = e.getX()/scaleIndex;
currentIsoPoint.y = e.getY()/scaleIndex;
currentIsoPoint.x = (e.getX()-centeringImage.x)/scaleIndex;
currentIsoPoint.y = (e.getY()-centeringImage.y)/scaleIndex;
}
public void functionClearHitboxJButton() {