Circle Hitbox functionality is fully ready. It must be done Rectangle Hitbox.

This commit is contained in:
2026-04-08 17:10:49 +03:00
parent 7e09343035
commit f43795e1f4
3 changed files with 33 additions and 18 deletions

View File

@ -27,13 +27,13 @@ public class HitboxCircleRenderingFunction implements ShapeRenderingFunction {
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()));
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)));
// 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);
System.out.println("CURRENT: coordX = "+(int)firstIsoPoint.x+ ". coordX = "+(int)(firstIsoPoint.y-currentDiametrX/4));
System.out.println("CURRENT: diametrX = "+currentDiametrX+ ". diametrY = "+currentDiametrX/2);
// 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);
}
}

View File

@ -24,11 +24,20 @@ public class HitboxCircle extends Hitbox {
diametrX = radiusHitbox/temp*4;
diametrY = radiusHitbox/temp*2;
cartesianCenterImagePoint = isometricToCartesian(owner.getImage().getWidth()/2,owner.getImage().getHeight(),cartesianCenterImagePoint);
Point cartesianCenterRefPoint = new Point(referencePoint.x+cartesianCenterImagePoint.x, referencePoint.y+cartesianCenterImagePoint.y);
Point cartesianCenterRefPoint = new Point(cartesianCenterImagePoint.x-referencePoint.x, cartesianCenterImagePoint.y-referencePoint.y);
Point isoCenterRefPoint = new Point(0,0);
isoCenterRefPoint = cartesianToIsometric(cartesianCenterRefPoint.x,cartesianCenterRefPoint.y,isoCenterRefPoint);
currentRefPoint.x = isoCenterRefPoint.x-diametrY;
currentRefPoint.y = isoCenterRefPoint.y-diametrY/2;
System.out.println("----------------------------");
System.out.println("Entity = "+owner.getName());
System.out.println("refCartEntPoint X ="+cartesianCenterRefPoint.x+"||cartesianCenterRefPoint Y ="+cartesianCenterRefPoint.y);
System.out.println("CartCenterImage X ="+cartesianCenterImagePoint.x+"||CartCenterImage Y ="+cartesianCenterImagePoint.y);
System.out.println("refIsoEntPoint X ="+currentRefPoint.x+"||refIsoEntPoint Y ="+currentRefPoint.y);
System.out.println("diametrY "+ diametrY);
System.out.println(" ");
}
@Override
public String listPointsToString() {
@ -36,8 +45,15 @@ public class HitboxCircle extends Hitbox {
cartesianCenterImagePoint = isometricToCartesian(owner.getImage().getWidth()/2,owner.getImage().getHeight(),cartesianCenterImagePoint);
cartesianCenterRefPoint = isometricToCartesian(currentRefPoint.x+diametrY,currentRefPoint.y+(diametrY/2),cartesianCenterRefPoint);
System.out.println("");
referencePoint.x = (cartesianCenterRefPoint.x - cartesianCenterImagePoint.x) * (-1);
referencePoint.y = (cartesianCenterRefPoint.y - cartesianCenterImagePoint.y) * (-1);
referencePoint.x = cartesianCenterImagePoint.x-cartesianCenterRefPoint.x;
referencePoint.y = cartesianCenterImagePoint.y-cartesianCenterRefPoint.y;
System.out.println("----------------------------");
System.out.println("Entity = "+owner.getName());
System.out.println("refCartEntPoint X ="+cartesianCenterRefPoint.x+"||cartesianCenterRefPoint Y ="+cartesianCenterRefPoint.y);
System.out.println("CartCenterImage X ="+cartesianCenterImagePoint.x+"||CartCenterImage Y ="+cartesianCenterImagePoint.y);
System.out.println("refIsoEntPoint X ="+currentRefPoint.x+"||refIsoEntPoint Y ="+currentRefPoint.y);
System.out.println("diametrY "+ diametrY);
System.out.println(" ");
return "Circle "+(int)referencePoint.x+" "+(int)referencePoint.y+" "+(int)radiusHitbox;
}