Kolizja sprite'ów

Kolizja sprite'ów


Będzie wykorzystany ten sam przykład co z muzyką i dźwiękiem tylko, że bez takich efektów i z trzema kulkami :)
Nie będę tu się rozpisywał bo to jest wam kompletnie nie potrzebne...

Jednym z rozsądnych untiów, który mozecie dołączyć do waszego projektu to: noxxdxsprite;
Jedyną jak na razie funkcją, którą tam znajdziecie jest: "collision"

Oto przykład z użyciem 2 buttonów:

if noxxdxsprite1.collision(
button1.left, - pozycja od góry 1
button1.top, - poycja od lewej 1
button1.width, -wielkosć 1
button1.height, -szerokość 1
button2.left, - pozycja od góry 2
button2.top, - poycja od lewej 2
button2.width, -wielkosć 2
button2.height -szerokość 2
) = true then
showmessage('kolizja')
else showmessage('brak kolizji');

Jak zapewne zauważyliście wystraczy podać pozycję x,y oraz wymiary 2 różnych komponętów i gotowe :)
A teraz podstawami matematyki zrobimy autko, które porusza się po drodze i nie moze z tej drogi wyjsc :P załóżmy że mamy ścianę po lewej o szerokości 10 a o wysokości takiej samej jak ekran. czyli: left := 0, top:=0, width := 10, height := screen.hegiht;
i mamy następną ścianę tylko, że po drugiej stronie :)
Teraz praktyka: mamy te dwie ściany i autko, robisz coś tam aby autko się poruszało a w dxtimer (ontimer) wpisujesz
begin
if noxxdxsprite1.collision(
pozycja_autka_x,pozycja_autka_y,szerokosc_autka,wysokosc_autka,0,0,10,screen.height
) = true then jakas_akcja; // to do lewej ściany
if noxxdxsprite1.collision(
pozycja_autka_x,pozycja_autka_y,szerokosc_autka,wysokosc_autka,screen.width-10,0,10,screen.height
) = true then jakas_akcja; //a to do prawej
end;

Jakas_akcja to wasza wymyslona akcja do np. kolizji ;]
Przykład użycia kolizji możecie ściągnąć tutaj