Study
LÖVE2D

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.

Editor Latihan

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.