obracanie obiektów oraz funkcja intersect
Ostatnio zmodyfikowano 2017-12-25 15:45
Corvette653 Temat założony przez niniejszego użytkownika |
obracanie obiektów oraz funkcja intersect » 2017-12-21 19:57:10 mam pewien problem z moją grą stworzoną w SFML. Gra polega na przejściu przez "labirynt"(tor przeszkód) tak aby nie dotknąć linii. dotknięcie sprawdzam tak: sprite.getGlobalBounds().intersects( sciana1.getGlobalBounds() )
niestety gdy użyje np: to nadal program sprawdza pierwsze współrzędne mimo tego że ściana rysuje się w innym miejscu(co potwierdza że współrzędne się zmieniły) obrazując -------------------------- rotate(90) | --- | ___| |_|__________ - .intersects zwraca prawdę ponieważ użytkownik "wszedł" ścianę, a dokładniej w jej stare współrzędne --- | | | | ______|_________ | | --- | | - .intersects zwraca fałsz ponieważ użytkownik nie dotknął starych współrzędnych ściany --- | --- | | - obiekt którym porusza się użytkownik --- _____ - stare współrzędne tak naprawdę tam nic nie ma ||| oraz ---- - "ściana" EDIT: problem dotyczy sytuacji w której po każdym przejściu programu ściana obraca się o 0.01 stopnia czyli rotate 0.01 intersects rotate 0.01 intersects rotate 0.01 intersects rotate 0.01 intersects rotate 0.01 intersects itd.. nie chciałem już kombinować z ctime a tak to działa dodatkowo bardzo płynnie a nie skoki o kilka stopni co 0.5s |
|
pekfos |
» 2017-12-21 22:49:34 Takie sprawdzanie kolizji nie będzie działać poprawnie dla obiektów innych niż prostokąty z bokami równoległymi do osi układu. |
|
Corvette653 Temat założony przez niniejszego użytkownika |
» 2017-12-22 07:46:51 Każdy intersects dziala tylko dla prostokątów poniewaz on sprawdza najdalej wysunięte punkty (4) i tworzy z nich jakby prostokąt
------------------ | /\ | | / \ | | / \ | | / \ | | / \ | | / \ | |/ \| / \ ________________
_ wspolny bok trójkąta i intersects /\ trójkąt |- intersects Tak to u mnie dziala gdy dam intersects na trójkąt. A co do boków równoległych do osi układu współrzędnych to czm i jak sprawdzac aby działało? Bo tego nie rozumiem |
|
Corvette653 Temat założony przez niniejszego użytkownika |
» 2017-12-25 11:56:19 naprawdę nie ma żadnego prostego sposobu na sprawdzanie kolizji kwadratu z np.: trójkątem, ponieważ myślę że chodzi właśnie o boki równoległe do układu współrzędnych a w trójkącie takie są max 2 boki (trójkąt prostokątny) |
|
pekfos |
» 2017-12-25 15:45:30 Zdefiniuj "prosty sposób". Gotowiec z SFMLa? Wtedy nie ma. |
|
« 1 » |