0Pricing
Lua Academy · Ders

Bileşen Tabanlı Betikleme

Oyun varlıklarını Lua'da davranış bileşenleri içeren tablolar olarak tasarlayın.

Bileşen Tabanlı Betikleme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Bileşen Tabanlı Tasarım Nedir?

Derin sınıf hiyerarşileri yerine varlıklar, küçük ve belirli amaçlara odaklanan veri ve davranış tabloları olan bileşenlerden oluşturulur. Bir varlık yalnızca bileşenler koleksiyonudur.

Tablo Olarak Varlık

Bir varlık, id ve components alt tablosu bulunan bir tablodur. Bileşenler çalışma zamanında eklenip kaldırılır.

local function newEntity(id)
  return {id = id, components = {}}
end
local player = newEntity(1)

Bileşen Ekleme

Bileşenler tablosunda adlandırılmış bir anahtar ayarlayarak bileşen ekleyin.

player.components.position = {x=0, y=0}
player.components.health   = {hp=100, max=100}
player.components.sprite   = {image="player.png", scale=1}

Sistemler Bileşenleri İşler

Bir sistem, gerekli bileşenlerden oluşan kümenin tamamına sahip tüm varlıkları işler. Sistemler varlıklar üzerinde yineleme yapar ve bileşen verilerini günceller.

local function moveSystem(entities, dt)
  for _, e in ipairs(entities) do
    local pos = e.components.position
    local vel = e.components.velocity
    if pos and vel then
      pos.x = pos.x + vel.dx * dt
      pos.y = pos.y + vel.dy * dt
    end
  end
end

Bileşen Betikleri

Lua işlevlerini bileşen davranışı olarak ekleyin; bu, varlık başına basit bir betik oluşturma biçimidir.

player.components.ai = {
  update = function(self, entity, dt)
    -- move towards target
  end
}

Bileşen Kayıt Defteri

Bir kayıt defteri, bileşen türü adlarını üretici işlevlere eşler ve bileşenlerin adlarına göre oluşturulmasını sağlar (örneğin bir bölüm dosyasından).

local registry = {}
function registry.register(name, factory)
  registry[name] = factory
end
function registry.create(name, ...)
  return registry[name](...)
end

Bileşenleri Kaldırma

Bileşeni kaldırmak için değerini nil olarak ayarlayın. Varlık bundan sonra, bu bileşeni gerektiren sistemler tarafından yok sayılır.

player.components.health = nil  -- entity is "dead"

Dünya ve Varlık Yöneticisi

Bir World nesnesi tüm varlıkları ve sistemleri depolar, her işlem adımında sistemler üzerinde yineleme yapar ve varlık sorgulama arayüzleri sunar.

Varlıkları Bileşene Göre Sorgulama

Belirtilen bileşenlerin tümüne sahip varlıkları döndüren bir sorgu işlevi sağlayın.

local function query(world, ...)
  local required = {...}
  local result = {}
  for _, e in ipairs(world.entities) do
    local ok = true
    for _, comp in ipairs(required) do
      if not e.components[comp] then ok = false; break end
    end
    if ok then result[#result+1] = e end
  end
  return result
end

Ön Tanımlar

Ön tanım, bileşenlerden oluşan bir şablon tablosudur. Şablonu derin kopyalayarak ön tanımlardan yeni varlıklar oluşturun.

Kalıtıma Göre Avantajları

  • Derin hiyerarşiler yoktur.
  • Davranış çalışma zamanında birleştirilir.
  • Özellik eklemek ve kaldırmak kolaydır.
  • Yapılandırma dosyalarındaki veriler temel alınır.

Bileşen Tasarımı Sorusu

Bileşen tabanlı tasarımda bir Sistem ne yapar?

Özet: Bileşen Tabanlı Betik Oluşturma

Varlıklar bileşen tablolarıdır. Sistemler, gerekli bileşenlere sahip varlıkları işler. Bu gevşek bağlı, veri odaklı mimari derin kalıtım hiyerarşilerinden daha esnektir ve Lua ile doğal biçimde çalışır.

Sıkça Sorulan Sorular

“Bileşen Tabanlı Betikleme” dersi ücretsiz mi?

Evet — “Bileşen Tabanlı Betikleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Bileşen Tabanlı Betikleme” dersinde ne öğreneceğim?

Oyun varlıklarını Lua'da davranış bileşenleri içeren tablolar olarak tasarlayın. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Bileşen Tabanlı Betikleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Lua'da Olay Sistemleri
  2. Bileşen Tabanlı Betikleme
  3. Durum Makineleriyle Yapay Zeka Davranışı
  4. Veri Odaklı Yapılandırma ve Sıcak Yeniden Yükleme
← Lua Academy Sayfasına Dön