Etkinlik
Karakterimi hareket ettiriyorum üzerine;
Karakterin hızını iki katına, 3 katına çıkarın, 0 yapın tüm olasılıkları deneyerek çalıştırın
Öyle bir kod ekleyin ki shift tuşuna basılı tutulduğunda hız iki katına çıksın, bırakıldığında normal hıza ulaşsın
Karakterin pozisyonunu belirleyebilmek;
klavyeden 1 tuşuna basıldığında karakter sahnenin sağ üst köşesine ışnlansın
klavyeden 2 tuşuna basıldığnda karakter sahnenin sağ alt köşesine ışınlansın
klavyeden 3 tuşuna basıldığında karakter sahnenin sol alt köşesine ışınlansın
klavyeden 4 tuşuna basıldığnıda karakter sahnenin sol üst köşesine ışınlansın
Karakterin ebadını büyütmek/küçültmek;
klavyeden 5 tuşuna basıldığında karakter ekranın ortasına ışınlansın
yavaş yavaş ekran kadar büyüsün,
daha sonra yavaş yavaş başlangıç ebadına küçülsün
Karakteri döndürmek
klavyeden 6 tuşuna basıldığında karakter yavaşça saat yönünde bir tur dönsün
Timer Kodu:
func delay_example():
var timer = Timer.new()
timer.one_shot = true
timer.wait_time = 2.0 # Delay for 2 seconds
add_child(timer)
timer.start()
await timer.timeout # Wait for the timer to timeout
print("2 seconds have passed")
Etkinlik
İnceleme
03-Çarpışma Algılama kodlasının incelenmesi çalışma prensibinin anlaşılması. Düğümlerin ve özeliklerinin tatışılması
Ders Notu-1
Node2D, Godot'ta iki boyutlu oyunlar için temel bir düğümdür. Diğer 2D düğümlerin (node'ların) çoğu bu sınıftan türetilir.
Temel Özellikleri:
Ebeveyn ya da alt düğüm olabilir.
Diğer düğümlere göre konumlandırılabilir.
position, rotation ve scale gibi temel özellikleri kontrol edebilir.
Kullanım Amacı: Node2D, sahnede belirli bir konuma yerleştirilebilecek tüm 2D öğeler için temel node'dur. Bir sprite, kamera, ya da animasyon için Node2D kullanılabilir.
CharacterBody2D (önceki sürümlerde KinematicBody2D idi), genellikle oyuncu karakterleri gibi hareketli nesneleri temsil etmek için kullanılan bir node'dur. Oyun dünyasında fiziksel etkileşimleri kontrol etmek için hareket ve çarpışma işlevlerine sahiptir.
Temel Özellikleri:
Hareketi ve çarpışmayı programlama kontrolünde tutar.
Çarpışma algılama ve çözme işlemleri yapılabilir.
Gravitasyon (yerçekimi) ve zemin üzerinde durma gibi karakter tabanlı kontroller yapılabilir.
Kullanım Amacı: Karakterlerin oyun dünyasında hareket ederken fizik kurallarına uygun davranmasını sağlamak için kullanılır. Örneğin, zıplama, yürüme ve çarpışmaları kontrol etmek için uygundur.
StaticBody2D, fiziksel olarak sabit (hareket etmeyen) bir nesneyi temsil eden bir node'dur. Diğer nesnelerle çarpışabilir ancak kendi hareket etmez.
Temel Özellikleri:
Oyun dünyasında sabit kalır.
Üzerine çarpan nesnelerin hareketini etkiler.
Kendi pozisyonu değişmez, yani fizik simülasyonunda sabittir.
Kullanım Amacı: Zemin, duvarlar, platformlar veya oyuncuların çarpışacağı diğer sabit nesneleri temsil etmek için kullanılır. Fiziksel olarak sabit olan tüm nesnelerde kullanılabilir.
CollisionShape2D, bir nesneye çarpışma alanı tanımlamak için kullanılır. Bu alan, diğer nesnelerle çarpışmaları algılamak ve fizik simülasyonları yapmak için gereklidir.
Temel Özellikleri:
Farklı şekiller (dikdörtgen, daire, poligon gibi) seçilerek tanımlanabilir.
Bir nesneyle çarpışma olduğunda çarpışmayı algılar.
Genellikle KinematicBody2D, StaticBody2D veya Area2D gibi düğümlerle kullanılır.
Kullanım Amacı: Oyun dünyasındaki nesnelere fiziksel bir "hitbox" tanımlamak için kullanılır. Yani, bir sprite'ın görsel boyutlarının ötesinde, çarpışma tespiti yapmak için uygun bir alan belirlenir. Bu, çarpışmaları daha verimli bir şekilde hesaplamaya olanak tanır.
Godot oyun motorunda iki boyutlu görselleri (sprite) sahnede göstermek için kullanılan bir node'dur. Bir oyun karakterini, obje veya herhangi bir grafik öğesini temsil etmek için Sprite2D kullanabilirsin.
Görsel Gösterim: Sprite2D, bir texture'yi (örneğin, PNG gibi bir resim dosyasını) sahnede görsel olarak temsil eder. Bu, bir karakterin, düşmanın, ya da arka planın görselleştirilmesi için kullanılır.
Pozisyon ve Ölçekleme: Diğer 2D node'lar gibi, sprite'ın sahnedeki position (konum), scale (ölçek), ve rotation (dönme) özelliklerini ayarlayabilirsin.
Animasyon Desteği: Sprite2D, tek bir görüntü gösterebilir ancak farklı karelerde animasyon göstermek için AnimatedSprite2D veya SpriteFrames kullanılabilir.
Modülasyon: Sprite'a bir renk filtresi (modulation) uygulayarak rengini değiştirebilirsin. Örneğin, bir sprite'ı kırmızı yaparak "vurulmuş" etkisi verebilirsin.
Flip: Sprite2D yatayda (flip_h) veya dikeyde (flip_v) ters çevrilebilir. Bu, özellikle karakterin sola veya sağa dönmesi gereken durumlarda faydalıdır.
Karakter Görselleri: Oyuncu karakterleri, düşmanlar, NPC'ler gibi görsel temsiller Sprite2D ile yapılır.
Arka Plan ve Obje: Sahnedeki arka plan ve nesneler, ağaçlar, duvarlar ya da taşlar gibi görsel öğeler de bu node ile sahneye yerleştirilebilir.
Animasyon Olmayan Ögeler: Tek karelik görsel nesneler için idealdir. Eğer bir sprite'ın animasyonu yoksa ve statik bir görsel olarak kullanılacaksa, Sprite2D en uygun seçenektir.
Godot Kodları
4. Hafta Github Kodları (Proje klasörü: 02-karakterimi-hareket-ettiriyorum)
Ders Notu-1
3. Hafta Github Kodları (Proje klasörü: 01-gdscript-degisken-kullanımı)
Ders Notu-2
Sprite2D: Godot'ta Sprite2D nesnesi, oyunlarımızdaki görsel öğelerin temelini oluşturur. Bu nesneye birçok farklı özellik ekleyerek ve değiştirerek oyunlarımızda istediğimiz görsel ve davranışsal özellikleri elde edebiliriz.
Konum (Position): Sprite'ın sahne içindeki yerini belirler.
position.x ve position.y değerlerini değiştirerek sprite'ı istediğimiz yöne hareket ettirebiliriz.
Karakterin SAĞ ok tuşuna basıldığında sahnede sağa gitmesini sağlayan GDScript kodu:
var speed = 400
func _ready() -> void:
pass # Replace with function body.
func _process(delta: float) -> void:
if Input.is_action_pressed("go_right"):
position.x = position.x + delta * speed
Godot Oyun Motoru İndir
İlk 2D Oyunum
Araştırma
Genel Oyunlar Hakkında
Oyunlar nasıl ortaya çıkar?
Oyunları özel kılan nedir?
Oyun motoru nedir ve neden kullanılır?
Farklı oyun motorları var mı?
Godot oyun motoru nedir?
Godot ile ne tür oyunlar yapabiliriz?
Godot’u diğer oyun motorlarından ayıran özellikler nelerdir?
Godot ile nasıl bir oyun yapabilirim?
Kendi oyunumu oluşturmak için nelere ihtiyacım var?
Etkinlikler
Godot oyun geliştirme ekranının tanıtılmas
İlk proje dosyasının oluşturulması (merhaba dünya)
Kahoot
Godot'un İncelenmesi
Giriş
Tanışma etkinlikleri, klavye egzersizi