Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan oyun geliştirme eğitim serisinin bir bölümüdür. Eğitmen, partikül sistemi oluşturma sürecini adım adım göstermektedir.
- Videoda, partikül sisteminin çalışma prensibi açıklanarak başlanıyor ve ardından kodlamaya geçiliyor. Eğitmen önce "particles" paketi oluşturuyor, "world" ve "particle" sınıflarını tanımlıyor, ardından taş ve toprak parçacıklarının nasıl oluşturulacağını gösteriyor. Ayrıca, kullanıcı dokunuşu ile partiküllerin nasıl ekleneceği ve farklı materyallere sahip partiküllerin nasıl oluşturulacağı anlatılıyor.
- Videoda ayrıca toprak parçacıklarının update fonksiyonu, altlarının boş olup olmadığını kontrol etme ve ekranın dışına çıkmaması için gerekli kodlar gösteriliyor. Farklı materyalleri seçmek için tuş kombinasyonları (1-2-3-4) kullanılacağı belirtiliyor ve parçacıkların çok hızlı düşmesi sorununa da değiniliyor.
- 00:10Fizik ve Motor Çalışma Prensibi
- Ekranda piksele benzeyen küçük noktalar olacak ve bu noktalar belirlenen bir dünya içinde kendi materyal özelliklerine göre hareket edecek.
- Taş objesi yerçekimine kapılmayacak, toprak yerçekiminin etkisiyle aşağı doğru düşecek, su ise bulunduğu kabın şeklini almaya çalışacak.
- 00:54Dünya ve Parçacık Sınıflarının Oluşturulması
- Yeni bir "partics" paketi oluşturulup, içinde "particle" (parçacık) ve "world" (dünya) sınıfları ekleniyor.
- World sınıfı, genişlik ve yükseklik değerlerine sahip olacak ve tüm partiküllerin tutulduğu bir ArrayList objesi içerecek.
- World sınıfına "update" ve "render" fonksiyonları ekleniyor.
- 03:49Particle Sınıfının Özellikleri
- Particle sınıfı, konum (x ve y), renk ve world objesi gibi özelliklere sahip olacak.
- Particle sınıfına constructor, update ve render metodları ekleniyor.
- Render fonksiyonunda Shape Render kullanılarak, x ve y koordinatlarında bire bir ebatlarında bir dikdörtgen çiziliyor.
- 05:39World Sınıfının Test Edilmesi
- Playscreen'de public bir world objesi oluşturulup, genişlik 100, yükseklik 50 olarak ayarlanıyor.
- Update fonksiyonu oluşturulup, render'a başlarken önce bu fonksiyon çalıştırılıyor.
- World'un particles dizisine yeni bir particle ekleniyor ve konumu 50,25 olarak belirleniyor.
- 08:04Dokunmatik Kontrol Ekleme
- Fareyi kullanarak parçacıklar yerleştirilecek, bunun için update fonksiyonunun başında girdileri almak gerekiyor.
- Vektör 3 objesi oluşturulup, ekrana dokunulan veya farenin x ve y koordinatları alınıyor.
- Viewport'un unproject metodu kullanılarak input değerleri gerekli değerlere dönüştürülüyor.
- 10:49Dokunmatik Kontrolün Düzenlenmesi
- World'un dışına çizim yapılabiliyor ancak bunu düzeltmek gerekiyor.
- Sadece ekrana dokunulduğunda veya fare ile tıklandığında kodların çalışması için if (gdx input is touched) kullanılıyor.
- Tıklama işlemi için ilk parmak seçiliyor.
- 12:04Farklı Materyaller İçin Alt Sınıflar
- Farklı materyaller (taş, toprak, su) için kendi alt sınıfları oluşturulacak.
- "Stone" sınıfı oluşturulup, Particle sınıfından türetiliyor.
- Stone sınıfında renk dışarıdan istenmiyor, gri renk (colors gray) olarak belirleniyor.
- 13:20Toprak Partikül Ekleme
- Stone particle ekrana çizmeye başlandı ve şimdi toprak partikül eklenecek.
- Toprak partikülünün rengi kahverengi olarak ayarlandı.
- Toprak partikülünün update fonksiyonu yazılması gerekiyor.
- 14:46Boş Alan Kontrolü
- World sınıfına "isEmpty" adında yeni bir fonksiyon eklendi, bu fonksiyon koordinatların boş olup olmadığını kontrol ediyor.
- Foreach döngüsü kullanılarak her bir particle kontrol ediliyor ve eğer verilen koordinatlarda başka bir particle varsa o alan dolu olarak kabul ediliyor.
- Eğer hiçbir particle yoksa o alan boş olarak kabul ediliyor.
- 15:56Ekran Sınırları Kontrolü
- Partiküllerin ekranın dışına çıkmaması için x ve y koordinatlarının sınırlar içinde olup olmadığı kontrol ediliyor.
- X veya y koordinatları sınırların dışındaysa, o alan dolu olarak kabul ediliyor.
- Bu şekilde parçacıklar sınırlarda duruyor, sınırların dışına çıkmıyor.
- 16:53Toprak Partikülünün Update Fonksiyonu
- Toprak partikülünün update fonksiyonunda "if (world.isEmpty(x, y-1))" koşulu kullanılıyor.
- Eğer alt alan boşsa, toprak partikülü bir aşağı düşüyor.
- Toprak partikülü alt alan doluysa düşmüyor ve belirlenen sınırlar içinde kalıyor.
- 17:47Programın Çalıştırılması ve Sorunlar
- Program çalıştırıldığında toprak materyali düzgün çalışıyor.
- Dünyanın dışındaki alanlar dolu olarak algılanıyor ve parçacıklar hareket etmiyor.
- Parçacıklar çok hızlı düşüyor, bu nedenle zaman sınırlaması getirilmeli.