Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 15:46   #1
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию Объясните принцип работы ф-ции....

Код:
public static bool PerPixel(Rectangle RectangleA, Texture2D SpriteA, Rectangle RectangleB, Texture2D SpriteB)
        {
            Color[] DataA = new Color[SpriteA.Width * SpriteA.Height];
            SpriteA.GetData(DataA);

            Color[] DataB = new Color[SpriteB.Width * SpriteB.Height];
            SpriteB.GetData(DataB);

            int Top = System.Math.Max(RectangleA.Top, RectangleB.Top);
            int Bottom = System.Math.Min(RectangleA.Bottom, RectangleB.Bottom);
            int Left = System.Math.Max(RectangleA.Left, RectangleB.Left);
            int Right = System.Math.Min(RectangleA.Right, RectangleB.Right);

            for (int y = Top; y < Bottom; y++)
            {
                for (int x = Left; x < Right; x++)
                {
                    Color colorA = DataA[(x - RectangleA.Left) + (y - RectangleA.Top) * RectangleA.Width];
                    Color colorB = DataB[(x - RectangleB.Left) + (y - RectangleB.Top) * RectangleB.Width];

                    if (colorA.A > 30 && colorB.A > 30)
                    {
                        return true;
                    }
                }
            }

            return false;
        }
(столкновение спрайтов)
Какой ее принцип то?
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 01.11.2012, 09:12   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Вы просматриваете все пиксели 2-х спрайтов. Если хоть один из пикселей на двух спрайтах в обеих картинках имеет альфа-канал соотвутствующего пикселя (непрозрачность) > 30, то спрайты считаются пересекающимися. Похоже что так.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 01.11.2012, 16:56   #3
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

аа.. вон как.. спасибо большое...
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните принцип программы s4egol Помощь студентам 2 28.10.2012 17:51
Принцип работы браузеров _PROGRAMM_ Общие вопросы по программированию, компьютерный форум 47 30.08.2012 22:53
принцип работы ссылки sbcd Свободное общение 0 03.06.2011 21:50
Delphi, объясните принцип рисования StringGrid. Canvas paranoiac Помощь студентам 1 31.03.2011 00:27
Принцип работы NS-серверов Ivan_32 Свободное общение 1 31.10.2010 03:38