0Pricing
Lua Academy · Ders

Girdiyi Yönetme

Tuşlara ve fareye yanıt verin.

Girdiyi Yönetme, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. 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.

Girdiyi Okumanın İki Yolu

LÖVE iki girdi stili sunar. Yoklama, her karede "bu tuş şu anda basılı mı?" diye sorar ve hareket gibi sürekli eylemler için idealdir.

Olaylar, bir şey olduğunda bir kez çalışan geri çağrılardır; örneğin love.keypressed. Bu yöntem zıplama veya ateş etme gibi tek seferlik eylemler için idealdir.

Klavyeyi Yoklama

love.keyboard.isDown(key), bir tuş basılı tutulduğu sürece true döndürür. Akıcı ve sürekli tepki için bunu love.update içinde çağırın.

Her karede denetlendiği için tuşu basılı tutmak eylemi sürdürür. Bu, bir oyuncuyu hareket ettirmek için en doğal yöntemdir.

function love.update(dt)
  if love.keyboard.isDown('right') then
    player.x = player.x + player.speed * dt
  end
end

Birden Çok Tuşu Denetleme

love.keyboard.isDown aynı anda birden çok tuş kabul eder ve bunlardan herhangi biri basılıysa true döndürür; bu, alternatif tuş atamaları için kullanışlıdır.

Her yönü bağımsız olarak ele almak ve dört yönlü tam hareket sağlamak için ayrı denetimleri de art arda kullanabilirsiniz.

function love.update(dt)
  if love.keyboard.isDown('a', 'left') then
    player.x = player.x - player.speed * dt
  end
  if love.keyboard.isDown('d', 'right') then
    player.x = player.x + player.speed * dt
  end
end

keypressed Olayı

love.keypressed(key), bir tuşa basıldığı anda tam olarak bir kez çalışır. Zıplama veya duraklatma gibi, tuş basılı tutulurken tekrarlanmaması gereken eylemler için kullanın.

Motor, tuş adını bir dize olarak aktarır; bu nedenle 'space' veya 'escape' gibi adlarla karşılaştırma yaparsınız.

function love.keypressed(key)
  if key == 'space' then
    player.jumping = true
  end
end

Escape ile Çıkma

Yaygın bir uygulama, oyuncu Escape tuşuna bastığında oyunu kapatmaktır. love.event.quit motoru düzgün bir şekilde kapatır.

keypressed her basışta bir kez çalıştığı için tuşun basılı tutulmasından kaynaklanan yanlış tekrarlanan tetiklemeler önlenir.

function love.keypressed(key)
  if key == 'escape' then
    love.event.quit()
  end
end

keyreleased

love.keyreleased(key), bir tuş bırakıldığında bir kez çalışır. Bunu keypressed ile birlikte kullanarak basılı tutulma durumlarını kendiniz izleyebilirsiniz.

Bu, yükleme mekanikleri için kullanışlıdır: basışta yüklemeyi başlatır, bırakışta ateş eder ve tuşun ne kadar süre basılı tutulduğunu ölçersiniz.

function love.keypressed(key)
  if key == 'space' then chargeStart = love.timer.getTime() end
end
function love.keyreleased(key)
  if key == 'space' then power = love.timer.getTime() - chargeStart end
end

Fare Konumu

love.mouse.getPosition, love.update veya love.draw içinde imlecin geçerli x ve y konumunu döndürür. getX ve getY işlevlerini ayrı ayrı da kullanabilirsiniz.

Koordinatlar çizim alanıyla aynıdır: orijin sol üsttedir ve y aşağı doğru artar.

function love.update(dt)
  local mx, my = love.mouse.getPosition()
  crosshair.x, crosshair.y = mx, my
end

Fare Düğmeleri

Düğmeleri, 1'in sol düğme, 2'nin sağ düğme ve 3'ün orta düğme olduğu love.mouse.isDown(1) ile yoklayın.

Tek tıklamalar için, bir kez çalışan ve tıklama koordinatlarını doğrudan sağlayan love.mousepressed(x, y, button) olayını kullanın.

function love.mousepressed(x, y, button)
  if button == 1 then
    spawnAt(x, y)
  end
end

Metin Girdisi

Yazı yazmak için love.textinput(text), klavye düzenini ve değiştirici tuşları dikkate alarak gerçek karakteri iletir. Bu, metin alanları oluştururken keypressed kullanmaktan daha iyidir.

textinput tarafından gönderilmeyen geri silme ve giriş gibi özel tuşları ele almak için bunun yanında keypressed kullanın.

function love.textinput(t)
  inputBuffer = inputBuffer .. t
end

Yoklama ve Olayları Birleştirme

Gerçek oyunlar iki stili de kullanır: hareket tuşlarını her karede love.update içinde yoklarken tek seferlik eylemleri olay geri çağrılarında ele alırlar.

Doğru stili seçmek hataları önler. Bir zıplamayı update içinde yoklamak, tuş basılı tutulduğu sürece her karede çalışmasına neden olur; bir olay ise amaçlandığı gibi yalnızca bir kez çalışır.

function love.update(dt)
  if love.keyboard.isDown('left') then player.x = player.x - 200*dt end
end
function love.keypressed(key)
  if key == 'up' then jump() end
end

Oyun Kumandası Temelleri

LÖVE, joystick API'si aracılığıyla kumandaları da destekler. love.joystickpressed ve bir joystick'in isGamepadDown işlevi düğmeleri okur.

Analog çubuklar, getGamepadAxis aracılığıyla -1 ile 1 arasında değerler döndürür; böylece dt kullanarak klavye yoklamasında olduğu gibi hareketi akıcı biçimde ölçekleyebilirsiniz.

function love.update(dt)
  if joystick then
    local ax = joystick:getGamepadAxis('leftx')
    player.x = player.x + ax * player.speed * dt
  end
end

Hızlı Kontrol

LÖVE'nin girdi işleme konusundaki anlayışınızı sınayın.

Özet

LÖVE girdisi iki biçimde gelir: sürekli eylemler için love.keyboard.isDown ve love.mouse.isDown ile yoklama yapabilir, tek seferlik eylemler için love.keypressed ve love.mousepressed gibi olay geri çağrılarına tepki verebilirsiniz.

Fare, metin ve oyun kumandası API'leri bu özellikleri tamamlar. Doğru stili seçmek denetimlerin duyarlı kalmasını ve hatasız çalışmasını sağlar.

Sıkça Sorulan Sorular

“Girdiyi Yönetme” dersi ücretsiz mi?

Evet — “Girdiyi Yönetme” 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.

“Girdiyi Yönetme” dersinde ne öğreneceğim?

Tuşlara ve fareye yanıt verin. 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 3. dersidir.

“Girdiyi Yönetme” 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. LOVE Oyun Döngüsü
  2. Şekil ve Görüntü Çizme
  3. Girdiyi Yönetme
  4. Hareket ve Çarpışmalar
← Lua Academy Sayfasına Dön