С Новым годом! Форум программистов, компьютерный форум, киберфорум
XNA/MonoGame
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 25.06.2015
Сообщений: 3
1

Как спрятать часть изображения rectangle?

31.05.2018, 12:36. Показов 3826. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Представьте себе winFrom'овский textBox со скроллами. То есть имеется видимая часть (в центре контролла) с частью текста, и есть не видимая часть. Привожу в пример 1 изображение .
Назовем черную панель Панель, а содержимое Контекст.
У меня была идея вычислять ректангл Контекста исходя из ректангла Панели методом Rectangle.Intersect(Rectangle panel, Rectangle context); Он возращает новый Rectangle, вычисляя смежность (? ну или пересечение) из двух.
Все было бы хорошо, если бы ректангл умел рисовать, относительно своей позиции, пустую часть, а потом часть текстуры. Смотрите 2 изображение. Но тема не работает. Так как мне спрятать то часть текстуры?
Или быть может я не там лазаю, не в ректанглах дело? Каким способом можно реализовать подобное GUI средствами Xna? Или быть может без сторонник библиотек тут не обойтись? Хочу все сам сделать. Спасибо за внимание и помощь.
Миниатюры
Как спрятать часть изображения rectangle?   Как спрятать часть изображения rectangle?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2018, 12:36
Ответы с готовыми решениями:

Спрятать часть изображения под блок
Подскажите как спрятать картинку под блоком flex, как на картинке? При использовании...

Как часть формулы спрятать в функцию?
"Родил" длинную формулу в запросе, но запрос режет ее, так как больше 1024 знаков. Часть кусков...

Как спрятать большую часть кода
у меня есть массив 27*27 он очень громоздкий можно ли как нибудь облегчить файл program? может...

Спрятать часть интерфейса класса
Добрый вечер, как предоставить возможность только классу Initer создавать и инициализировать...

1
0 / 0 / 0
Регистрация: 25.06.2015
Сообщений: 3
08.06.2018, 08:27  [ТС] 2
Найдено решение, узнав на сайте SFML (другой граф. движок).
Решение: в методе Draw поменять текущий ViewPort графического устройства. Данный способ можно и использовать для прорисовки миникарты. И так, можно все сделать в одном методе Draw(). Стоит отметить, что нужна переменная, хранящая первоначальные размеры экрана width и height (допустим 600 на 600).

C#
1
2
3
4
5
6
7
8
9
10
11
12
public override void Draw(GameTime gameTime)
{
       GraphicsDevice.Clear(Color.Blue);
       GraphicsDevice.ViewPort = new ViewPort(new Rectangle(0,0, width, height));
       spriteBatch.Begin();
       spriteBatch.Draw(////----------------/////); // рисуем что нам надо. Допустим игровой мир.
       spriteBatch.End();
       GraphicsDevice.ViewPort = new ViewPort(new Rectangle(200, 200, 400, 400)); // Делаем отображение в других координатах и размерах, это будто второй монитор.
       spriteBatch.Begin();
       spriteBatch.Draw(////----------------/////); // рисуем панель.
       spriteBatch.End();
}
Честно, SFML работает с таким круче, но меня дико раздражает структура и методы прорисовки игровых компонентов. Уж привык к Xna.
Миниатюры
Как спрятать часть изображения rectangle?  
0
08.06.2018, 08:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2018, 08:27
Помогаю со студенческими работами здесь

Спрятать url изображения
нужна ваша помощь, на своем сайте использую картинки из разных источников, часть картинок...

Как скопировать в текстурный объект часть изображения?
Предположим, что я хочу, используя наложение текстур, отобразить изображение размером 2048х1024,...

Как загрузить заданную часть изображения в Image?
Здравствуйте. Подскажите пожалуйста на небольшом примере: У меня есть изображение 200х200...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru