Load Asset & Resource Management
Penjelasan
Memuat asset (gambar, font, suara) dari disk adalah operasi yang relatif lambat, jadi praktik yang benar adalah memuat semuanya sekali di `love.load()` dan menyimpannya di tabel terpusat, bukan memanggil `love.graphics.newImage()` berulang kali di tempat lain (apalagi di dalam `love.draw()` yang berjalan tiap frame). Untuk project dengan banyak asset, pola umum adalah tabel `Assets` terpisah berisi semua resource yang sudah dimuat, sehingga bagian kode lain tinggal mengambil referensinya (`Assets.gambar.karakter`) tanpa perlu tahu detail bagaimana file itu dimuat.
Contoh Konsep
local Assets = {
gambar = {},
font = {},
suara = {}
}
function love.load()
Assets.gambar.karakter = love.graphics.newImage("karakter.png")
Assets.gambar.musuh = love.graphics.newImage("musuh.png")
Assets.font.judul = love.graphics.newFont("font.ttf", 32)
Assets.suara.lompat = love.audio.newSource("lompat.wav", "static")
end
function love.draw()
love.graphics.setFont(Assets.font.judul)
love.graphics.draw(Assets.gambar.karakter, 100, 100)
end
Praktikum
Buat tabel Assets terpusat yang memuat 2 gambar dan 1 font di love.load, lalu gunakan keduanya di love.draw tanpa memanggil newImage/newFont lagi di luar love.load.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau game punya banyak level dengan asset berbeda-beda, pertimbangkan memuat asset per level saat level dimulai, bukan semua asset sekaligus di awal, supaya waktu loading awal tidak terlalu lama.