2009-07-03 2 views
0

Эй, мне было интересно, если кто-нибудь знает, как сделать обрезку с 2D-текстурами для gui или меню вроде системы.Клип или Маска 2D-текстуры

Вот пример вывода я хотел бы производить

Есть игровой экран размером 500 х 500. с экраном позади него с размером 1000 х 1000.

Когда я рисовать a Текстура в 0, 0 с родительским экраном размером 500 x 500 i хотела бы, чтобы компонент не отображался.

, но если я нарисую компонент на 500, 450, а ширина и высота текстуры - 100, я бы ожидал только см. всю ширину, но только половину высоты компонента.

Мне было интересно, если есть простой способ сделать это?

Edit:

В основном я думал, что-то вроде эффекта маски в Photoshop.

здесь картина Clipping picture

черный контур, где другая половина текстуры будет нарисован.

ответ

0

Вы можете обрезать текстуру. Когда результирующая фигура является многоугольной, вы можете сделать это, просто изменив вершины и координаты текстуры.

Когда обрезанная текстура сложная, тогда все становится сложнее.

Вы также можете сделать клип, просто рисуя все в нужном порядке.
Это может быть неэффективно, но это легко.

p.s. Картина поможет здесь.

0

Другой способ решить эту проблему:

В основном у вас есть две сцены для рисования: игровой экран (синий часть в вашем picture) и фона экрана (красная часть вашего picture).

Я думаю, что вы могли бы нарисовать экран игры и экран backgrond в двух разных растровых объектах (или что-то подобное в вашей графической библиотеке).

Следующий шаг - скопировать весь растровый рисунок фона на выходной растровый объект, а затем вы можете скопировать только центральную часть (квадрат размером 500 x 500 с центром на экране вывода) экрана игры.


P.S: Возможно, было бы лучше, если бы вы могли добавить более подробную информацию о используемой графической библиотеке.

+0

Ну, красный цвет должен был быть другим экраном за ним. –

Смежные вопросы