Witam. Mam problem z narysowaniem koła w MogoGame.
Udało mi się to wygooglać: http://stackoverflow.com/questions/24559585/how-to-create-a-circle-variable-in-monogame-and-detect-collision-with-other-circ
Według autora odpowiedzi:
Now, if I've got my calculations correct (I wrote this off the top of my head) you should be able to use the new Circle class the same way you can use the XNA / MonoGame Rectangle class.
Jednakże, nie mogę użyć tej klasy analogicznie jak Rectagle, wpisanie takiego kodu:
//konstruktor
circle = new Circle(10, 10, 10);
//metoda draw
spriteBatch.Draw(ball, circle, Color.White);
Wywala mi błąd:
Severity Code Description Project File Line Suppression State
Error CS1503 Argument 2: cannot convert from 'Addons.Circle' to 'Microsoft.Xna.Framework.Vector2?'
Błąd oczywiście rozumiem, tylko nie wiem jak do tego podejść... Teoretycznie mogę sobie stworzyć drugą zmienną, tym razem Rectagle typu:
recCircle = new Rectangle(circle.X, circle.Y, circle.Radius, circle.Radius);
i wtedy rysuję sobie teksturę z przeźroczystym tłem i narysowanym nań kołem:
spriteBatch.Draw(ball, recCircle, Color.White);
odległość od środka kwadratu do jego ściany, będzie równa R koła, więc rozmiar powinien się zgadzać. Jeżeli chodzi o kolizję to teoretycznie będę mógł przemieszczać "kształt" koła za tym prostokątem i je na siebie nakładać, żeby móc wykryć kolizję koła z innym obiektem, a nie kolizję kwadratu.
Jednakże takie rozwiązanie sprawia kilka problemów:
- Tekstura koła musi być przeźroczysta, oraz mieć sporą rozdzielczość. W przeciwnym przypadku podczas skalowania się "rozjedzie". Wolałbym zrobić sobie teksturę wielkości 1x1px jednego koloru i sobie ją po prostu skalować, kolorować itd.
- takie rozwiązanie będzie podatne na błędy i wymaga dużo klepania, trochę bezsensownego kodu... (niezły syf się zrobi).
W związku z tym proszę Was o pomoc. Jak narysować to koło?
Pozdrawiam ;)