Определите, какой спрайт мыши закончен

Я пытаюсь определить, на каком спрайте находится мышь в изометрической 2D-игре. Я думаю, что лучше всего нарисовать каждый спрайт другого цвета в отдельном renderTarget2D и превратить его в Texture2D в этот момент я могу получить данные о цвете от точки мыши и сравнить их с нарисованными спрайтами.

Однако проблема с этим методом заключается в том, что я не могу изменить цвет отдельных спрайтов на сплошной. Если я изменю цвет в spriteBatch.Draw вызов, он только окрашивает цвет спрайта, а не рисует его сплошным цветом, поэтому данные, которые я извлекаю из текстуры, не помогают.

Любые предложения или помощь в рисовании этих спрайтов в сплошной цвет?

1 ответ

Решение

Не делай так. Создание новой цели рендеринга и копирование данных в память даже для сотен спрайтов шестьдесят раз в секунду - это далеко за пределы возможностей современных систем.

Просто используйте Contains метод структуры Rectangle:

var destination = new Rectangle(100, 100, 50, 50);
bool mouseOver = destination.Contains(mouseX, mouseY);
Другие вопросы по тегам