![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
Среда VS 2010
Я новичок в C#. Хочу написать простую игрушку здесь(до этого писал в delphi ее же), такой вопрос: Как можно просто и относительно быстро выводить буфер кадра на форму? Или где можно почитать об этом, в каком направлении искать? Есть здесь какая-то команда, подобная BitBlt, которой я выводил кадр в делфи? |
![]() |
![]() |
![]() |
#2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Примерно как тут http://programmersforum.ru/showthread.php?t=216809 только создать битмап-буффер, на него с помощью его graphics рисовать что надо, а потом на graphics формы вывести единым махом.
Если что-то не получится, кидайте сюда проект, помогу разобраться. пс. битблит платформо-зависимая вещь, в дотнете хоть и можно было бы обратиться к винапи и работать с ними, но сложнее и мало смысла (ввиду межплатформености дотнета, и идеологии ввообще) Последний раз редактировалось phomm; 10.06.2013 в 12:39. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
ок, спасибо, будем пробовать) Вроде от дельфи почти не отличается
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
Что-то уже второй день не могу проблему решить. Допустим, у меня уже есть готовый буфер Graphics buf, где все спрайты нарисованы и надписи написаны.
Код:
Простое присваивание ссылок тоже ничего не дает. |
![]() |
![]() |
![]() |
#5 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
BitBlt из gdi32.dll сможет скопировать.
|
![]() |
![]() |
![]() |
#6 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Не помню, как там насчёт графикс вывести на графикс, вроде как-то можно, но надо смотреть, ну а я писал малость не так, я имел ввиду на основной графикс(формы) вывести сам битмап-буфер, а не его графикс (графикс битмапа - для рисования на нем).
Ну если не получится, то выкладыйвайте проектом, навскидку говорить есть ли там заковырки и какие шаги надо принимать - малореально. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
А как тогда мне достать битмап из графикса? Я чувствую, в каком-то месте просто не понял, как с этими двумя классами работать
![]() Моя последовательность действий: объявить Graphics buf - подготовительный буфер, накидать в него картинок командой вроде: buf.DrawImage(im,0,0) и затем этот буфер как-то полностью скопировать в основной буфер формы. Из вашего сообщения, я так понял, для хранения второго (подготовительного) буфера нужно класс Image использовать? Но как тогда изменять этот Image buf, чтобы создать полностью готовый кадр? как добавить на него другие картинки? |
![]() |
![]() |
![]() |
#8 | ||
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]() Цитата:
Цитата:
Кстати, чем вызвано желание перейти с дельфи VCL на винформс и сишарп ? не всё ли равно на чём из этих двух вещей писать простенькую игрушку ? я писал простенькие на обоих, и в общем и целом скажу, что дельфи чуть лучше подходит для такой цели. Ну а про код/проект уже устал говорить )) Последний раз редактировалось phomm; 13.06.2013 в 16:49. |
||
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
Все понял, теперь получилось, спасибо
![]() |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 13.05.2009
Сообщений: 47
|
![]()
Поспешил радоваться, не прокатило как хотел сделать. Мерцание есть (не понимаю почему), но если поставить галочку DoubleBuffered, перестает.
Основная проблема, что таймер здесь как -то не так время меряет. Т е если изменить интервал скажем с 10 на 5, в 2 раз быстрее кружки по форме не поедут. В этом проекте еще не так заметно, но в основном проблемы начинаются уже на интервале 50-70. Когда я ставлю интервал меньше, действия не ускоряются абсолютно, и все рывками идет. В том проекте принцип вывода аналогичный. Выложил и код, и проект. Посмотрите, пожалуйста. Сам уже вряд ли разберусь. Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c# рисование на форме | world12_tk | Помощь студентам | 5 | 03.09.2012 14:41 |
Рисование на форме | Dissembler7 | Помощь студентам | 2 | 17.03.2012 22:43 |
Рисование на форме. | (*_*) | Общие вопросы C/C++ | 1 | 22.09.2009 13:06 |
рисование на форме | Kostua | Помощь студентам | 2 | 26.07.2008 16:24 |
Рисование на форме | niva622 | Помощь студентам | 4 | 18.01.2007 09:34 |