Godot – Sinyaller

Godot sinyali, bir olayın meydana geldiğini belirtir ve adlandırılmış işlevleri tetiklemek için kullanılabilir.

Bu, özellikle oyunlar için; örneğin karakterlerin öldüğü, bir düşmanın vurulduğu veya bir kapının açıldığı gibi etkileşimlerin daha karmaşık olduğu durumlarda yararlıdır. Godot Signals, bu etkileşimleri daha kolay ve daha etkili bir şekilde ele almamızı sağlar.

Bir butona basıldığı anda (on pressed) hareket eden karakteri durdurmak istersek:

1) Sahneye bir karakter (sprite) ve bir buton ekleyin.

2) Butona tıkladıktan sonra yerleşimin sağ kısmında bulunan “Node” penceresinden, pressed() sinyalini seçerek script atayın.

extends Sprite

var speed = 400
var angular_speed = PI


func _process(delta):
	rotation += angular_speed * delta
	var velocity = Vector2.UP.rotated(rotation) * speed
	position += velocity * delta

func _on_Button_pressed():
	set_process(not is_processing())

set_process() fonksiyonu _process’i aktif ve pasif hale getirmemizi sağlamaktadır.

Godot – Karakter Hareketi

extends Sprite

var speed = 400
var angular_speed = PI

#sadece ileri ve kendi etrafında dönme (move forward + turn around itself)
func _process(delta):
	var direction = 0
	
	if(Input.is_action_pressed("ui_left")):
		direction -=1
	if(Input.is_action_pressed("ui_right")):
		direction +=1

	rotation += angular_speed * direction * delta
	
	
	var velocity = Vector2.ZERO
	
	if(Input.is_action_pressed("ui_up")):
		velocity = Vector2.UP.rotated(rotation) * speed
	
	position += delta * velocity