1 | |
Залить окно текстурами.07.10.2011, 18:21. Показов 2618. Ответов 10
Метки нет (Все метки)
Всем привет. Захотелось попробовать написать какую-нибудь простейшую игрушку на WPF, так как там рисуется всё DirectX'ом. Но что-то не въеду, как быстро отрисовывать и выволить на экран? Читал, что WPF не предназначен для частой отрисовки и т.д. Но мне кажется при желании же как-то можно сделать чтобы всё норм рисовалось?
Как я это вижу: есть набор текстур, например квадратные блоки из которых строится уровень, вот этими блоками и хочу залить окно например для начала. Искал, искал и всё не тему что находил. Может кто-нибудь пример показать?
0
|
07.10.2011, 18:21 | |
Ответы с готовыми решениями:
10
Залить окно текстурой 400 на 200 Как залить chm файл в окно программы с++ Builder 6? Создать окно произвольного размера, скрыть окно, показать окно, удалить окно. Проблема с текстурами |
101 / 86 / 6
Регистрация: 08.04.2010
Сообщений: 169
|
|
07.10.2011, 18:35 | 2 |
говорят, для этих целей больше XNA подходит
0
|
07.10.2011, 18:49 [ТС] | 4 |
Про XNA я в курсе. И пробовал игрушку написать, да там всё для этих целей, всё удобно и относительно просто. Но WPF не требует ставить дополнительных библиотек, которые требует XNA. Да и вообще интересно попробовать на WPF что-то намутить.
Кстати, если кому интересно, вот тут мне один человек давал ссылку на XNA уроки, я пока по первой ссылке поглядел, нитчего нового для себя не узнал (у меня мания какая-то, что книги по порядку все главы читаю, что видео смотрю всё, но думаю это не всегда есть хорошо).
0
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|
08.10.2011, 09:44 | 5 |
Главное не действовать так, как надо в XNA - рисовать все по новой на каждом кадре. То есть создаем какой-нибудь контейнер с экраном загрузки уровня, а уровнем ниже (zIndex) или скрытно генерируем в то время еще один контейнер, на котором и размещаем разные там текстуры. После чего срываем контейнер с загрузкой и показываем уровень. Вся фишка в том, что бы больше поле (если только сильно надо) не трогать, а двигать/убирать/добавлять только нужные картинки.
А далее на сколько воображения хватит: 1. Если надо вывести несколько текстур (сложный цельный механизм - к примеру замок) за раз, то лучше их нарисовать в памяти на картинке и вывести эту картинку. 2. Если предполагается перемещение экрана уровня, то в контейнер надо вставить контейнер по-больше (можно в принципе и под размер всего уровня, но будет много памяти съедаться) и генерировать объекты за экраном. Проблемы могут возникнут, если понадобиться отображать много мелких частиц, которые движутся по своим траекториям - фейерверк. (Есть решение, но я его в силу абсурдности не буду называть) Написать простенькую 2D-игру в принципе можно на WPF, хотя сами микрософтеры не советуют этого делать. У большинства юзеров стоит 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
|
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 |
Можно и так переформулировать =) Что обязательно должно быть на компах конечных пользователей, чтобы на них работала программа, написанная на XNA?
0
|
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
|
|
11.10.2011, 10:12 | 11 |
Собственно .Net 2.0 + библиотеки XNA, которые могут распространяться с приложением или установлены в систему.
см. Quick Infirmation Нужно как минимум Win XP SP2 (читай .Net Framework 2.0) и видюха с Shader Model 1.1
0
|
11.10.2011, 10:12 | |
11.10.2011, 10:12 | |
Помогаю со студенческими работами здесь
11
Глюки с текстурами Проблемы с текстурами Странности с текстурами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |