| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Графическая реализация проекта |
| Автор: СВА 9.1.2006, 06:59 |
| Суть вопроса такова, допустим я собрался сделать игрушку что-то отдаленно напоминающее Dune II. Математическая модель готова. Теперь сам вопрос как можно сделать графическую реализацию, ведь нужно нарисовать поле на нем декорации и объекты при этом обеъекты могут двигаться и желательно плавно. Я пробовал каждый раз перерисовывать кдры, но используя функции Bitblt или чтото в этом роде на перерисовку кждого кадра уходит много времени зачастую до 1 секунды и конечно об анимации можно было забыть. Так вот возможны ли другие способы прорисовывать кадры если да то как |
| Автор: ~FoX~ 9.1.2006, 13:02 |
| Ну как водиться вариантов то море от DX и OpenGL до написания собственного двигла.... Но ИМХО плоскую графику вполне потянут и стандартные АПИ Глянь тут: http://vingrad.ru/VB-ART-002308 Изображения достаточно большого размера обрабатываются оч шустренько. |
| Автор: KEKCCCP 9.1.2006, 14:32 |
| ИМХО ИМХО ИМХО Не надо никаких API для токого. Зачем усложнять себе жизнь? То ж самое получается. Рисовать надо на *.picture при чём *.AutoRedraw = True, чтобы графика не мигала. Все картинки полей и всяких там юнитов загружаем в массив PictureBox'ов. picP(*).picture = loadpicture(...), чтобы вообще ничего не тормозило (и у всех эл. массива *.AutoSize = True)! Чтобы нарисовать прозрачную картику (к примеру, с фоном vbRed), надо делать так: TBLT Form1.hDC, 0, 0, picP(*).Width, picP(*).Height, picP(*).hDC, 0, 0, picP(*).Width, picP(*).Height, vbRed При этом в модуле объяви: Declare Function TBLT Lib "Msimg32.dll" Alias "TransparentBlt" ( _ ByVal hdcDest As Long, ByVal nXOriginDest As Long, _ ByVal nYOriginDest As Long, ByVal nWidthDest As Long, _ ByVal nHeightDest As Long, ByVal hdcSrc As Long, _ ByVal nXOriginSrc As Long, ByVal nYOriginSrc As Long, _ ByVal nWidthSrc As Long, ByVal nHeightSrc As Long, _ ByVal crTransparent As Long) As Boolean Для не прозр. можно исп. Form1.PaintPicture ... |
| Автор: Exception 9.1.2006, 14:45 |
| В сложных проектах DX rulz. |
| Автор: СВА 10.1.2006, 05:59 | ||
В своем проекте я так и делал и при разрешении экрана 600*800 точек эта функция работает очень медленно и достичь смены кадров хотя бы 20 в сек. невозможно. насчет DX у меня стоит 9.1 и если я не ошибаюсь уже с 8-й версии там нет работы с 2D графикой. на многих форумах говорится что VB и OpenGL не созданы друг для друга |
| Автор: СВА 12.1.2006, 07:42 |
| ладно остановимся на DX его нужно подключать к проекту или нет |
| Автор: ~FoX~ 12.1.2006, 17:05 | ||
|
| Автор: СВА 15.1.2006, 06:20 |
| я так понял дело мне придется иметь с DirectDraw. Ни кто не видел хоть какой нибудь пример для работы с ним. Покажите хоть какую нибудь ссылочку, пожалуйста. |
| Автор: ~FoX~ 16.1.2006, 08:44 |
| СВА На, http://www.firststeps.ru/mfc/directx/directx1.html очь простая и интересная статья на тему ДиректДвров |
| Автор: СВА 17.1.2006, 06:00 |
| статьии я видел мне хотя бы один пример, пожалуйста |
| Автор: ~FoX~ 17.1.2006, 09:04 | ||
Полное описание http://vbstreets.ru/VB/Articles/65965.aspx |
| Автор: СВА 18.1.2006, 05:55 |
| ~FoX~ ты меня не совсем понял, мне нужна ссылка на проект, а не на код, который ссылается на картинки, неимеющихся у меня |
| Автор: ~FoX~ 18.1.2006, 09:19 |
| СВА А немножко усилий приложить? Тебе же все равно их придется рисовать. И все равно придется с кодом разбираться. За тебя писать никто не будет, по крайней мере бесплатно! |