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.
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.