Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
1

Залить окно текстурами.

07.10.2011, 18:21. Показов 2618. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Захотелось попробовать написать какую-нибудь простейшую игрушку на WPF, так как там рисуется всё DirectX'ом. Но что-то не въеду, как быстро отрисовывать и выволить на экран? Читал, что WPF не предназначен для частой отрисовки и т.д. Но мне кажется при желании же как-то можно сделать чтобы всё норм рисовалось?

Как я это вижу: есть набор текстур, например квадратные блоки из которых строится уровень, вот этими блоками и хочу залить окно например для начала. Искал, искал и всё не тему что находил. Может кто-нибудь пример показать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2011, 18:21
Ответы с готовыми решениями:

Залить окно текстурой 400 на 200
Здравтсвуйте. Подскажите, как залить окно текстурой так, чтобы при растягивании окна справа...

Как залить chm файл в окно программы с++ Builder 6?
Есть chm файл, как вставить его в окно программы и в последующем переходить по ссылкам файла?

Создать окно произвольного размера, скрыть окно, показать окно, удалить окно.
Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Для создания окна...

Проблема с текстурами
Когда я устанавливаю на вертекс текстуру то она устанавливается со цветоискажением (все в оттенке...

10
101 / 86 / 6
Регистрация: 08.04.2010
Сообщений: 169
07.10.2011, 18:35 2
говорят, для этих целей больше XNA подходит
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
07.10.2011, 18:45 3
Casper-SC, поищи на codeproject по тегам wpf - относительно недавно (1-2 месяца назад видел) там неплохую вроде игрушку на wpf
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
07.10.2011, 18:49  [ТС] 4
Цитата Сообщение от al.k Посмотреть сообщение
говорят, для этих целей больше XNA подходит
Про XNA я в курсе. И пробовал игрушку написать, да там всё для этих целей, всё удобно и относительно просто. Но WPF не требует ставить дополнительных библиотек, которые требует XNA. Да и вообще интересно попробовать на WPF что-то намутить.

Кстати, если кому интересно, вот тут мне один человек давал ссылку на XNA уроки, я пока по первой ссылке поглядел, нитчего нового для себя не узнал (у меня мания какая-то, что книги по порядку все главы читаю, что видео смотрю всё, но думаю это не всегда есть хорошо).
0
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
08.10.2011, 09:44 5
Цитата Сообщение от Casper-SC Посмотреть сообщение
Но что-то не въеду, как быстро отрисовывать и выволить на экран?
Главное не действовать так, как надо в XNA - рисовать все по новой на каждом кадре. То есть создаем какой-нибудь контейнер с экраном загрузки уровня, а уровнем ниже (zIndex) или скрытно генерируем в то время еще один контейнер, на котором и размещаем разные там текстуры. После чего срываем контейнер с загрузкой и показываем уровень. Вся фишка в том, что бы больше поле (если только сильно надо) не трогать, а двигать/убирать/добавлять только нужные картинки.
А далее на сколько воображения хватит:
1. Если надо вывести несколько текстур (сложный цельный механизм - к примеру замок) за раз, то лучше их нарисовать в памяти на картинке и вывести эту картинку.
2. Если предполагается перемещение экрана уровня, то в контейнер надо вставить контейнер по-больше (можно в принципе и под размер всего уровня, но будет много памяти съедаться) и генерировать объекты за экраном.
Проблемы могут возникнут, если понадобиться отображать много мелких частиц, которые движутся по своим траекториям - фейерверк. (Есть решение, но я его в силу абсурдности не буду называть)
Написать простенькую 2D-игру в принципе можно на WPF, хотя сами микрософтеры не советуют этого делать.

Цитата Сообщение от Casper-SC Посмотреть сообщение
Но WPF не требует ставить дополнительных библиотек, которые требует XNA.
У большинства юзеров стоит 2-ой framework, а библиотеки XNA может ставить самостоятельно установщик при развертывании приложения.
0
14 / 14 / 3
Регистрация: 30.08.2011
Сообщений: 23
10.10.2011, 05:39 6
Может WriteableBitmap попробовать?
0
1 / 1 / 0
Регистрация: 01.03.2010
Сообщений: 26
10.10.2011, 16:47 7
а что за библиотеки тянет за собой XNA?
0
Эксперт .NET
4432 / 2092 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.10.2011, 16:58  [ТС] 8
Цитата Сообщение от NightEagle Посмотреть сообщение
а что за библиотеки тянет за собой XNA?
А конкретнее вопрос можно? То есть вообще что нужно, чтобы распрастранять игру или что?
0
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
10.10.2011, 18:47 9
Я думаю затея нехорошая.. Большие дядьки из M$ не зря не рекомендуют этого делать. По опыту могу сказать, что, когда накопится достаточно много геометрии в сцене, тормозить будет достаточно сильно.
А вообще концепция следующая:
1) Организуем два потока: один отрисовки (через CompositionTarget) - "Draw", а другой для обновления параметров ("Update") отрисовываемых объектов.
2) Через заданные промежутки времени делаем апдейт объектов в Update-потоке. Поток Draw получает доступ к данным, полученным после апдейта в Update. Тут нужно организовать межпоточное взаимодействие.
3) При получении управления потоком Draw делаем проверку отрисовываемых объектов в экран (не нужно отрисовывать невидимые).
... зацикливаем.

Вобщем, подход XNA в классике. Я на SL делал симуляшку двустепенного маятника - белый квадрат на "квадрате Малевича". Там геометрии нет, потому и мог позволить себе делать на SL. Но по нормальному нужно юзать XNA. Особых накладных расходов не вижу.
0
1 / 1 / 0
Регистрация: 01.03.2010
Сообщений: 26
11.10.2011, 03:32 10
Цитата Сообщение от Casper-SC Посмотреть сообщение
А конкретнее вопрос можно? То есть вообще что нужно, чтобы распрастранять игру или что?
Можно и так переформулировать =) Что обязательно должно быть на компах конечных пользователей, чтобы на них работала программа, написанная на XNA?
0
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
11.10.2011, 10:12 11
Цитата Сообщение от NightEagle Посмотреть сообщение
Что обязательно должно быть на компах конечных пользователей, чтобы на них работала программа, написанная на XNA?
Собственно .Net 2.0 + библиотеки XNA, которые могут распространяться с приложением или установлены в систему.
см. Quick Infirmation
Нужно как минимум Win XP SP2 (читай .Net Framework 2.0) и видюха с Shader Model 1.1
0
11.10.2011, 10:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2011, 10:12
Помогаю со студенческими работами здесь

Глюки с текстурами
Итак в чем суть глюка: подгружаю три текстуры, после них подгружаю меш который тоже грузит...

Проблемы с текстурами
Здраствуйте. Такая ситуация, в некоторых играх есть проблемы с текстурами, они какие-то странные,...

Странности с текстурами
У меня снова проблемы: начал играть в Battlefield 5 и сразу начались проблемы: сначала игра...

Проблемы с текстурами


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

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