Projeni Saklama. Yayınla.
Moonline Network ile hemen paylaş.
Katıl →

Godot 2D Envanter Sistemi Yapım Rehberi

Nisan 4, 2026
Geliştirici Rehberi
5 Dakika Okuma Süresi
33 Görüntüleme
Moonline Network
Oyunlarını ve projelerini ücretsiz & sınırsız yayınla.
Hemen Yayınla →

Godot Oyun Motorunda 2D Envanter Sistemi Nasıl Yapılır?

Godot Oyun Motorunda 2D Envanter sistemi nasıl yapılır sorusu, özellikle RPG veya hayatta kalma türünde projeler üreten bağımsız geliştiriciler için kritik bir eşiktir. Modern bir envanter sistemi sadece eşyaları depolamakla kalmaz, aynı zamanda veri yönetimi ile kullanıcı arayüzü (UI) arasında kusursuz bir köprü kurar. Bu rehberde, sürükle-bırak destekli, genişletilebilir bir envanter yapısını nasıl kurgulayacağınızı adım adım inceleyeceğiz.

Envanter Mimarisini Kurmak: Veri ve Görsellik Ayırımı

Bir envanter sistemi tasarlarken yapılan en büyük hata, eşya verilerini doğrudan UI elemanlarının içine gömmektir. Bunun yerine, veriyi görselden ayıran bir yapı kurmalısınız. Godot’ta bunun en efektif yolu Resources (Kaynaklar) kullanmaktır.

Resource Kullanarak Nesne Tanımlama

Her eşya için bir Script dosyası oluşturun ve Resource sınıfından türetin. Bu sayede her kılıç, iksir veya zırh için ayrı bir dosya (tres uzantılı) oluşturarak değerlerini (isim, ikon, hasar vb.) Inspector panelinden kolayca düzenleyebilirsiniz.

Geliştirici Notu: Veriyi Resource olarak saklamak, oyunun kaydedilmesi (Save/Load) süreçlerinde büyük kolaylık sağlar. Nesneleri JSON formatına dönüştürmek yerine doğrudan Resource dizilerini kaydedebilirsiniz.

Bu temel veri yapısını kurduğunuzda, projenizin 2d oyun geliştirme süreçlerinde ne kadar hızlandığını fark edeceksiniz. Veri yönetimi, oyunun kalbidir.

Kullanıcı Arayüzü (UI) ve Slot Tasarımı

Görsel tarafta, envanterinizin esnek olması için Godot’un GridContainer düğümünü kullanmalısınız. Bu düğüm, içine eklediğiniz tüm slotları otomatik olarak hizalar.

Sinyal Yönetimi ve Etkileşim

Bir slotun üzerine tıklandığında veya fare getirildiğinde ne olacağını signals (sinyaller) ile yönetmelisiniz. Örneğin, gui_input sinyalini kullanarak farenin sol tıkını algılayabilir ve eşyayı seçili hale getirebilirsiniz. Profesyonel bir oyun programlama disiplini için, slotların sadece görseli yönetmesini, asıl mantığın ana Envanter Script’inde dönmesini sağlayın.

GDScript ile Mantıksal Kodlama

Envanterin ana mantığı bir Array (Dizi) üzerinden yürümelidir. Örneğin, 15 slotluk bir envanteriniz varsa, 15 elemanlı bir diziniz olmalı. Boş slotlar null değerini taşırken, dolu slotlar ilgili Resource dosyasını referans almalıdır.

> proje_yayinla.exe başlatılıyor...
> oyununu yükle | limitsiz | tamamen ücretsiz
> yayını başlat
var inventory_data = [null, null, item_res, null] # Örnek dizi yapısı

Eşya Ekleme Fonksiyonu

Envantere yeni bir eşya eklendiğinde, dizi üzerinde boş bir yer (null) aranır. Bulunduğunda, o indeksteki slotun görseli güncellenir. Eğer sisteminize ‘stackable’ (üst üste binebilir) eşyalar eklemek istiyorsanız, Resource dosyanıza bir amount değişkeni eklemeyi unutmayın.

Kritik Uyarı: UI güncellemelerini her karede (delta) yapmaktan kaçının. Sadece envanterde bir değişiklik olduğunda (eşya alındığında veya atıldığında) görseli yenileyen fonksiyonu çağırın. Bu, performansı optimize eder.

Geliştirdiğiniz bu sistemleri test etmek için profesyonel projeleri incelemek isterseniz Moonline Network oyunlar sekmesine göz atabilir, mekaniklerin nasıl işlediğini canlı örneklerle görebilirsiniz.

Gelişmiş Özellikler: Sürükle ve Bırak

Godot, yerleşik bir sürükle-bırak (Drag and Drop) sistemine sahiptir. Bir Control düğümünde _get_drag_data, _can_drop_data ve _drop_data fonksiyonlarını override ederek bu özelliği aktif edebilirsiniz. Bu, kullanıcı deneyimini (UX) ciddi oranda artıracaktır.

Topluluk Desteği ve Gelişim

Envanter sisteminizi geliştirirken takıldığınız yerlerde diğer geliştiricilerle fikir alışverişinde bulunmak çok önemlidir. Sektörel bilgi paylaşımı ve yardımlaşma için Moonline Network topluluk sayfasını ziyaret ederek diğer indie geliştiricilerle tanışabilirsiniz.

Moonline Network ile Oyun Dünyasına Adım Atın

Oyun geliştirme yolculuğunuzda sadece kod yazmak yetmez; yaptığınız işi sergileyecek ve kitlenizi büyütecek bir platforma ihtiyacınız vardır. Moonline Network, bağımsız geliştiricilerin projelerini yayınlayabileceği, oyuncularla buluşabileceği ve dijital oyun ekosisteminde kendine yer edinebileceği devasa bir platformdur. Siz de hayalinizdeki projeleri hayata geçirdikten sonra Moonline Network platformuna üye olarak oyunlarınızı binlerce kişiye ulaştırabilir ve profesyonel bir ağın parçası olabilirsiniz. Hemen aramıza katılın ve oyun geliştirme kariyerinizi bir üst seviyeye taşıyın!

LEVEL UP: MOONLINE
Projelerini yükle, portfolyonu oluştur.
START GAME
❮ Önceki Makale Solo Geliştirici Olmanın Görünmez Maliyetleri Sonraki Makale ❯ Oyun Fikirleri İçin Yapay Zeka Nasıl Kullanılır?
DİSCORD'A KATIL