BasicC/Współrzędne
DegAt(W,H)
edytujFunkcja podaje kierunek wektora [W,H]. Bazuje na funkcji atan2, ale wynik dostosowuje do geometrii SDL. Wynik jest w stopniach od -180 do 180, 0 stopni wskazuje kierunek północny, czyli np. wektor [0,-1] ma 0 stopni. Definicja: (atan2(W,-(H))*57.29578)
Distance(x,y,x2,y2)
edytujOdległość punktu (x,y) od punktu (x2,y2)
PointInCircle(Px,Py,X,Y,R)
edytujZwraca 1 jeśli punkt (Px,Py) znajduje się wewnątrz koła (X,Y,R), 0 jeśli nie.
PointInBox(px,py,x1,y1,x2,y2)
edytujZwraca 1 jeśli punkt (px,py) znajduje się wewnątrz prostokąta (x1,y1,x2,y2), 0 jeśli nie. Warunki: x2>=x1, y2>=y1.
PointInRect(px,py,rx,ry,w,h)
edytujJ.w., ale zamiast 2. rogu podajemy szer. i wys. Warunki: w>=0, h>=0. Odpowiada funkcji SDL_PointInRect(&p,&r), gdzie p jest strukturą typu SDL_Point o polach int x i int y, p.x i p.y to współrzędne punktu. Analogicznie r jest typu SDL_Rect, r.x i r.y to współrzędne rogu, r.w i r.h to szerokość i wysokość prostokąta.
CircleCollide(x,y,r,x2,y2,r2)
edytujZwraca 1 jeśli koła (x,y,r) i (x2,y2,r2) posiadają punkty wspólne, 0 jeśli nie.
RectCollide(A,B)
edytujZwraca 1 jeśli prostokąt A i B posiadają punkty wspólne, 0 jeśli nie. A i B to struktury typu SDL_Rect. Odpowiada funkcji SDL_HasIntersection(&A,&B)
SRC(X,Y,W,H)
edytujDST(X,Y,W,H)
edytujKomendy do szybkiego ustawiania pól zmiennych SRC i DST typu SDL_Rect. Są to zmienne pomocnicze zadeklarowane w BasicSDL.h
Przykład:
include "BasicSDL.h"
SDL_Point punkt={100,350};
MAIN
SDLOpen(0)
Color(-1)
Draw(0,0,200,199)
GPrintAt(300,0,"Nachylenie ") GPrint(Str$(DegAt(200,199)))
GPrintAt(300,32,"Długość ") GPr(Distance(0,0,200,199))
Rect(0,200,100,200) Rect(100,200,100,100)
SRC(0,200,100,200) DST(100,200,100,100)
If (RectCollide(SRC,DST))
GPrintAt(300,232,"kolizja")
Else
GPrintAt(300,232,"brak kolizji")
EndIf
Color(65535)
Plot(punkt.x,punkt.y)
If (PointInBox(punkt.x,punkt.y,0,200,99,399))
GPrintAt(110,350,"punkt w prostokącie")
Else
GPrintAt(110,350,"punkt poza prostokątem")
EndIf
ShowPage
WaitInKey
SDLQuit
ENDMAIN