Funkcja kt?r? masz zwraca TRUE gdy chocia? jeden wierzcho?ek znajduje si? w "koszyku".
Narysuj sobie na kartce koszyk i kwadrat i pisz obok warunek jaki musi spe?ni? ka?dy wierzcho?ek ?eby by?o tak jak chcesz. Tak to najpro?ciej zrozumie?.
Jak chcesz aby funkcja zwraca?a TRUE tylko gdy ca?y element jest w kwadracie to warunek powinien wygl?da? mniej wi?cej tak:
Funkcja kt?r? masz zwraca TRUE gdy chocia? jeden wierzcho?ek znajduje si? w "koszyku".
Narysuj sobie na kartce koszyk i kwadrat i pisz obok warunek jaki musi spe?ni? ka?dy wierzcho?ek ?eby by?o tak jak chcesz. Tak to najpro?ciej zrozumie?.
Jak chcesz aby funkcja zwraca?a TRUE tylko gdy ca?y element jest w kwadracie to warunek powinien wygl?da? mniej wi?cej tak:
function isScreenElementInPosition(x1, y1, w1, h1, x2, y2, w2, h2)
return x2 > x1 and
x2 + w2 < x1 + w1 and
y2 > y1 and
y2 + h2 < y1 + h1;
end
Tutaj masz skrypt do przetestowania, ?e to faktycznie dzia?a:
function isScreenElementInPosition(x1, y1, w1, h1, x2, y2, w2, h2)
return x2 > x1 and
x2 + w2 < x1 + w1 and
y2 > y1 and
y2 + h2 < y1 + h1;
end
local koszyk = {
x = 200,
y = 200,
w = 150,
h = 150
};
local kwadrat = {
x = 100,
y = 100,
w = 100,
h = 100
};
addEventHandler('onClientRender', root, function (delta)
local progress = math.sin(getTickCount()/3000);
local newX, newY, _ = interpolateBetween(200, 200, 0, 400, 400, 0, progress, 'Linear');
kwadrat.x = newX;
kwadrat.y = newY;
local kwadratColor = 0xFFFF0000;
if isScreenElementInPosition(koszyk.x, koszyk.y, koszyk.w, koszyk.h, kwadrat.x, kwadrat.y, kwadrat.w, kwadrat.h) then
kwadratColor = 0xFF00FF00;
end
--draw koszyk
dxDrawLine(koszyk.x, koszyk.y, koszyk.x + koszyk.w, koszyk.y, 0xFF000000, 1, true);
dxDrawLine(koszyk.x, koszyk.y, koszyk.x, koszyk.y + koszyk.h, 0xFF000000, 1, true);
dxDrawLine(koszyk.x + koszyk.w, koszyk.y, koszyk.x + koszyk.w, koszyk.y + koszyk.h, 0xFF000000, 1, true);
dxDrawLine(koszyk.x, koszyk.y + koszyk.h, koszyk.x + koszyk.w, koszyk.y + koszyk.h, 0xFF000000, 1, true);
--draw kwadrat
dxDrawRectangle(kwadrat.x, kwadrat.y, kwadrat.w, kwadrat.h, kwadratColor, false);
end);
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach