Показать сообщение отдельно
Старый 28.11.2012, 19:37   #187
wppt
Нуждающийся
 
Регистрация: 25.11.2012
Сообщений: 83
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопросы по XNA.

Спасибо! А как же все таки реализовать заливку? Это ж получается мне на вход метода нужно взять рендертаргет и рекурсивно менять цвета пикселей, пока цвет их равен старому? Не медленно ли будет? Попробую ка я сделать это, и посмотрю

что-то не работает:
void fill(int x, int y, Color newC, Color oldC,RenderTarget2D rend)
{ 
    Color[] datoa = new Color[1];
    rend.GetData<Color>(datoa,0,1);
    if (x >= 0 && y >= 0 && x < rend.Width && y < rend.Height && datoa[0] == oldC && datoa[0] != newC)
        {
            datoa[0] = newC;
            fill(x - 1, y, newC, oldC, rend);
            fill(x + 1, y, newC, oldC, rend);
            fill(x, y - 1, newC, oldC, rend);
            fill(x, y + 1, newC, oldC, rend);
        }
        else return;
}
This rectangle is to large or too small и т.д.
Или нужно через гетдата всю текстуру передавать?

Последний раз редактировалось wppt, 29.11.2012 в 16:41.
(Offline)
 
Ответить с цитированием