#14 ajout de la notion de terrain, de planète et de zone contaminée

This commit is contained in:
2025-08-08 15:27:17 +02:00
parent a0f17df7c6
commit 25d81d57a5
27 changed files with 447 additions and 17 deletions

View File

@@ -0,0 +1,52 @@
class_name ImageTools
static func draw_circle(image: Image, center: Vector2i, length: int, color: Color = Color.WHITE):
for x in range(image.get_width()):
for y in range(image.get_height()):
var center_distance = Vector2i(x, y).distance_to(center)
if (center_distance <= length):
image.set_pixel(x, y, color)
static func draw_gradient(image: Image, center: Vector2i, length: int, color: Color = Color.WHITE, inverse := false):
for x in range(image.get_width()):
for y in range(image.get_height()):
var original_pixel_color = image.get_pixel(x, y)
var center_distance = Vector2i(x, y).distance_to(center)
if (center_distance == 0):
if not inverse:
image.set_pixel(x, y, original_pixel_color.blend(color))
else:
var color_to_add = Color(color, 1 / (center_distance / length)) if not inverse else Color(color, center_distance / length)
image.set_pixel(
x,
y,
original_pixel_color.blend(color_to_add)
)
static func flatten(image: Image, threshold := 0.5):
for x in range(image.get_width()):
for y in range(image.get_height()):
var original_pixel_color = image.get_pixel(x, y)
if original_pixel_color.r > threshold:
image.set_pixel(
x,
y,
Color.WHITE
)
else:
image.set_pixel(
x,
y,
Color.BLACK
)
static func copy(from: Image, to : Image):
for x in range(from.get_width()):
for y in range(from.get_height()):
to.set_pixel(x, y, from.get_pixel(x, y))

View File

@@ -0,0 +1 @@
uid://b05d3may5qqtv