Ahojte, dnes malá neurónová chuťovka pre Godot4. Takto vyzerá animácia bežiacej neurónovej siete s tým, že sa vždy rozžiari uzol autíčka buď pre rýchlosť, alebo vzdialenosť meranú od prekážky v bezpečnej vzdialenosti senzoru. Neuróny sú len dva, keďže som chcel ukázať, ako pracuje základná neurónka v Godot4. Ako vždy, pomáhal som si AI gpt, načo myslieť dnes, veď máme super tech, ktorá dáva barličky pre myseľ: https://hrubos.tech/blogy/content/images/20251213211819-basic_neural_network_hrubos.webp
No á prečo ju riadi rýchostný neurón? Lebo, keď auto stojí, ako môže merať vzdialenosť od prekážky pred ním?
extends Node2D
@onready var attached = 0
@onready var auto1 = $Auto1
@onready var border = $Border1Towards
@onready var proximity_bar = $Auto1/Control/Proximity1Bar
const BAR_MAX_SCALE = 10.0
var fade_speed = 2.0
var speed = 100
var proximity_x=200
#nastaví Proximity1Bar na 200 ak je presne od border1towards 200px vzdialený
func setme_proximity1bar(proximity_x):
var distance = abs(auto1.position.x - border.position.x)
var t = clamp(distance / proximity_x, 0.0, 1.0)
proximity_bar.scale.x = t*proximity_x/BAR_MAX_SCALE
func _ready() -> void:
$connection1lace.self_modulate.a = 0.0
$neuron1.modulate.a = 0.0
$neuron2.modulate.a = 0.0
$Auto1/Control/Proximity1Bar.visible=false
# Fade-in neuron1
func fadeNeuron1On(delta):
var texture = preload("res://neuron1active.svg")
$neuron1.texture_normal = texture
$neuron1.modulate.a = clamp($neuron1.modulate.a + fade_speed * delta, 0.0, 1.0)
# Zhasnutie neuron1
func fadeNeuron1Off():
$neuron1.modulate.a = 0.0
# Fade-in neuron2
func fadeNeuron2On(delta):
var texture = preload("res://neuron1active.svg")
$neuron2.texture_normal = texture
$neuron2.modulate.a = clamp($neuron2.modulate.a + fade_speed * delta, 0.0, 1.0)
# Zhasnutie neuron2
func fadeNeuron2Off():
$neuron2.modulate.a = 0.0
func _process(delta: float) -> void:
var moving_up = Input.is_action_pressed("ui_up") and $Border1Towards.position.x > $Auto1.position.x + 10
var moving_down = Input.is_action_pressed("ui_down") and $Auto1.position.x > 180
# Pohyb Auto1
if moving_up:
$Auto1.position.x += delta * speed
elif moving_down:
$Auto1.position.x -= delta * speed
if attached == 0:
# neuron1 fade-in pri pohybe, inak zhasne
if moving_up or moving_down:
fadeNeuron1On(delta)
else:
fadeNeuron1Off()
elif attached == 1:
# neuron1 + neuron2 fade-in pri pohybe, inak zhasnú oba
if moving_up or moving_down:
fadeNeuron1On(delta)
fadeNeuron2On(delta)
setme_proximity1bar(proximity_x)
else:
fadeNeuron1Off()
fadeNeuron2Off()
func _on_attach_2_neuron_pressed() -> void:
$connection1lace.self_modulate.a = 1.0
attached = 1
$Auto1/Control/Proximity1Bar.visible=true
func _on_detach_2_neuron_pressed() -> void:
$connection1lace.self_modulate.a = 0.0
attached = 0
$Auto1/Control/Proximity1Bar.visible=false
Kredit dávam aj pánovi učiteľovi: https://www.youtube.com/watch?v=VgzHT9quo5c
Môj zdroják je pre vás zdarma na stiahnutie tu: https://hrubos.tech/repo/basic_neural_network_godot4.3.zip

Comments “Základná neurónová sieť v Godot4. Chuťovka na dnes s animáciou & zdroják zdarma, MIT licencia:”