Study
LÖVE2D

Kamera & Scrolling Sederhana

Penjelasan

LÖVE2D tidak punya objek kamera bawaan, tapi efek kamera bisa dibuat dengan menggeser seluruh sistem koordinat gambar menggunakan `love.graphics.translate()` sebelum menggambar dunia game, dibungkus `love.graphics.push()` dan `love.graphics.pop()` supaya translasi tidak memengaruhi elemen UI yang harus tetap diam di layar (seperti skor). Kamera sederhana biasanya menghitung offset berdasarkan posisi pemain dikurangi setengah ukuran layar, sehingga pemain selalu tampak berada di tengah layar sementara dunia game bergeser di sekitarnya.

Contoh Konsep

local pemain = { x = 1000, y = 500 }
local lebarLayar, tinggiLayar = 800, 600

function love.draw()
    local kameraX = pemain.x - lebarLayar / 2
    local kameraY = pemain.y - tinggiLayar / 2

    love.graphics.push()
    love.graphics.translate(-kameraX, -kameraY)

    -- semua objek dunia digambar dengan koordinat dunia asli
    love.graphics.rectangle("fill", pemain.x, pemain.y, 40, 40)
    love.graphics.rectangle("fill", 1200, 500, 40, 40)

    love.graphics.pop()

    -- UI digambar setelah pop, tidak ikut bergeser
    love.graphics.print("Skor: 100", 10, 10)
end

Praktikum

Buat sebuah kotak pemain yang bisa digerakkan dengan tombol panah, dengan kamera yang selalu mengikuti posisi pemain agar tetap di tengah layar.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu pasangkan `love.graphics.push()` dengan `love.graphics.pop()` — lupa memanggil pop akan membuat translasi terus terakumulasi ke frame berikutnya dan tampilan jadi kacau.