Lua kodu sorunlu çalışıyor

sum41

Kilopat
Katılım
17 Haziran 2018
Mesajlar
32
JSON:
 if not isPathBlocked(enemy, normalizedDirX, normalizedDirY) then.
 enemy:setPosition(ex + normalizedDirX * enemy.speed * dt, ey + normalizedDirY * enemy.speed * dt)
 else.
 -- Engel algılandığında farklı yönler dene.
 local directions = {
 {0, 1}, -- Aşağı.
 {0, -1}, -- Yukarı.
 {1, 0}, -- Sağ.
 {-1, 0}, -- Sol.
 {math.cos(math.pi / 4), math.sin(math.pi / 4)}, -- 45 derece.
 {math.cos(-math.pi / 4), math.sin(-math.pi / 4)}, -- -45 derece.
 {math.cos(math.pi / 2), math.sin(math.pi / 2)}, -- 90 derece.
 {math.cos(-math.pi / 2), math.sin(-math.pi / 2)} -- -90 derece.
 }
 -- Engelden uzaklaşma ve en iyi yönü bulma.
 local moved = false.
 for i, dir in ipairs(directions) do.
 local testDirX, testDirY = dir[1], dir[2]
 if not isPathBlocked(enemy, testDirX, testDirY) then.
 enemy:setPosition(ex + testDirX * enemy.speed * dt, ey + testDirY * enemy.speed * dt)
 moved = true.
 break.
 end.
 end.
 end.

function isPathBlocked(enemy, dirX, dirY)
 local ex, ey = enemy:getPosition()
 local futureX = ex + dirX * 5 -- Birkaç piksel ileri bak (5 px)
 local futureY = ey + dirY * 5

 local colliders = world:queryRectangleArea(futureX - 20, futureY - 40, 40, 80, {'Platform'}) -- Engelleri kontrol et.
 return #colliders > 0 -- Eğer engel varsa true döner.
end

Görselde de gözüktüğü gibi "enemy" bir engele takıldığında engelden kurtulmak için her seferinde aşağıya doğru hareket ediyor. Bu sorunu çözemiyorum, yardımcı olursanız sevinirim.
 

Dosya Ekleri

  • ezgif-4-26500ab4c8.gif
    ezgif-4-26500ab4c8.gif
    858,7 KB · Görüntüleme: 44
Son düzenleyen: Moderatör:

Technopat Haberler

Geri
Yukarı