Kaynağa Gözat

Shade color according to life amount

DricomDragon 3 yıl önce
ebeveyn
işleme
3b71e44300
1 değiştirilmiş dosya ile 21 ekleme ve 3 silme
  1. 21 3
      godot/scripts/LifeContainer.gd

+ 21 - 3
godot/scripts/LifeContainer.gd

@@ -34,11 +34,29 @@ func create_font():
 	default_font = label.get_font("font")
 
 
+func color_from_life(n):
+	var x = float(n % 256) / 255
+	if (n < 256):
+		return Color(x, 1.0, 1.0 - x)
+	elif (n < 512):
+		return Color(1.0, 1.0 - x, x)
+	elif (n < 768):
+		return Color(1.0, 0.0, 1.0 - x)
+	else:
+		return Color(1.0, 0.0, 0.0)
+
+
 func _ready():
 	create_font()
 
 
 func _draw():
-	for p in living_cells:
-		draw_rect(Rect2(p * cell_size + rect_pad, cell_size - 2 * rect_pad), Color.red, true)
-		draw_string(default_font, p * cell_size + label_offset, str(living_cells[p]))
+	var amount
+	var pos
+	var color
+	for cell in living_cells:
+		pos = cell * cell_size
+		amount = living_cells[cell]
+		color = color_from_life(amount)
+		draw_rect(Rect2(pos + rect_pad, cell_size - 2 * rect_pad), color, true)
+		draw_string(default_font, pos + label_offset, str(amount))