Sprite & Spritesheet Sederhana
Penjelasan
Spritesheet adalah satu file gambar berisi banyak frame animasi tersusun dalam grid. LÖVE2D menyediakan objek `love.graphics.newQuad(x, y, lebar, tinggi, gambarLebar, gambarTinggi)` untuk mendefinisikan "jendela" yang memotong bagian tertentu dari spritesheet, lalu digambar dengan `love.graphics.draw(gambar, quad, x, y)`. Pendekatan ini jauh lebih efisien dibanding memuat banyak file gambar terpisah untuk tiap frame — satu texture di GPU, cukup ganti Quad mana yang ditampilkan tiap frame untuk membuat ilusi animasi berjalan.
Contoh Konsep
local spritesheet
local quads = {}
local frameLebar, frameTinggi = 32, 32
function love.load()
spritesheet = love.graphics.newImage("karakter_sheet.png")
for i = 0, 3 do
quads[i + 1] = love.graphics.newQuad(
i * frameLebar, 0, frameLebar, frameTinggi,
spritesheet:getDimensions()
)
end
end
local frameSaatIni = 1
function love.draw()
love.graphics.draw(spritesheet, quads[frameSaatIni], 400, 300)
end
Praktikum
Muat sebuah spritesheet dengan 4 frame berjajar horizontal, buat 4 Quad untuk masing-masing frame, lalu ganti frame yang ditampilkan setiap 0.15 detik.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Simpan semua Quad dalam array saat `love.load`, jangan buat Quad baru tiap frame di dalam `love.draw` — itu boros dan tidak perlu karena definisi potongan gambarnya tidak berubah.