Study
LÖVE2D

Collision Detection Sederhana (AABB)

Penjelasan

AABB (Axis-Aligned Bounding Box) adalah metode deteksi tabrakan paling sederhana: tiap objek dianggap sebagai kotak lurus (tidak berotasi), lalu dua kotak dianggap bertabrakan kalau posisi dan ukurannya saling tumpang tindih di sumbu X dan Y sekaligus. Metode ini cepat dihitung dan cukup untuk banyak game 2D sederhana. Syarat tabrakan AABB adalah: kotak A tidak berada sepenuhnya di kiri, kanan, atas, atau bawah kotak B. Kalau keempat kondisi "tidak bertabrakan" itu semuanya salah, berarti kedua kotak bertabrakan.

Contoh Konsep

function cekTabrakan(a, b)
    return a.x < b.x + b.lebar and
           a.x + a.lebar > b.x and
           a.y < b.y + b.tinggi and
           a.y + a.tinggi > b.y
end

local pemain = { x = 100, y = 100, lebar = 40, tinggi = 40 }
local musuh = { x = 120, y = 110, lebar = 30, tinggi = 30 }

function love.update(dt)
    if cekTabrakan(pemain, musuh) then
        print("Tabrakan terjadi!")
    end
end

Praktikum

Buat dua tabel entity (kotak dan koin) dengan properti x, y, lebar, tinggi, lalu cetak "Koin diambil!" ke console saat keduanya bertabrakan.

Editor Latihan

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

Tips

AABB hanya akurat untuk bentuk kotak — kalau butuh deteksi antar lingkaran, gunakan perbandingan jarak antar titik pusat dengan jumlah radius, bukan metode AABB.