Определите, какой спрайт мыши закончен
Я пытаюсь определить, на каком спрайте находится мышь в изометрической 2D-игре. Я думаю, что лучше всего нарисовать каждый спрайт другого цвета в отдельном renderTarget2D
и превратить его в Texture2D
в этот момент я могу получить данные о цвете от точки мыши и сравнить их с нарисованными спрайтами.
Однако проблема с этим методом заключается в том, что я не могу изменить цвет отдельных спрайтов на сплошной. Если я изменю цвет в spriteBatch.Draw
вызов, он только окрашивает цвет спрайта, а не рисует его сплошным цветом, поэтому данные, которые я извлекаю из текстуры, не помогают.
Любые предложения или помощь в рисовании этих спрайтов в сплошной цвет?
1 ответ
Не делай так. Создание новой цели рендеринга и копирование данных в память даже для сотен спрайтов шестьдесят раз в секунду - это далеко за пределы возможностей современных систем.
Просто используйте Contains
метод структуры Rectangle:
var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);