• 0 Posts
  • 2 Comments
Joined 3 months ago
cake
Cake day: July 19th, 2025

help-circle
  • Unfortunately, it looks like drawing a big rectangle is the only method to calculate area that’s baked into Godot. You could get the Area2D’s CollisionShape2D children, and then for each child you can child.shape.get_rect().get_area()

    Now, if you’re getting each shape anyway, and you know what kind of shape it is, you can use the appropriate formula to calculate area. For instance, if it’s a CircleShape2D, you can check the radius and get something like var area = shape.radius * shape.radius * PI

    For a polygon it becomes more complicated. You can get the points of the polygon and then use Geometry2D.triangulate_polygon() to get an array of triangles inside that polygon. You can then calculate the area of each triangle and sum them to get your total area. There’s no built-in way to do this, so it’s left as an exercise for you.

    The question I have to ask: from a design standpoint, is the exact size of each country truly important to the game? For the sake of argument, Canada is a really quite large country, but it’s sparsely populated. A lot of the land is frankly not very habitable. If I was going to abstract a surrender-factor, I’d think about “population” filling a role that you’re thinking of for “area.” If that were the case, you could just attach a property to each country manually. Maybe a little more work upfront depending on how many countries or regions you’re including, but it’s definitely cognitively simpler.