|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.05.2010, 20:32 | #1 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Спрайтовый 2D движок на Borland C++ Builder 6.0
Доброго времени суток, уважаемые форумчане! Я работаю над движком в Borland C++ Builder 6.0 и возникло несколько вопросов:
1. Как из стрипа, хранящегося в отдельном файле, выделить определенный кусок анимации? Рисую на Canvas, загружаю стрип в TPicture. 2. Как сделать попиксельную проверку столкновений? 3. Возможно ли получить полноэкранный режим БЕЗ использования различных сторонних SDK? Заранее спасибо ! (прошу прощения, если создал схожую тему, но в поиске ничего подобного не обнаружил )
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) |
16.05.2010, 07:42 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
1. (Загружали бы лучше в TBitmap - он сам по себе TGraphic) С помощью функции CopyRect. Создаете новый TBitmap по размеру кадра. Зная размер кадра и номер нужного кадра, копируете прямоугольник CopyRect'ом в TBitmap, потом рисуете Draw его, удаляете TBitmap - это если вам нужна прозрачность. Если прозрачность не нужна, то вообще забываете про TBitmap и выводите CopyRect'ом прямо на экран (или лучше - на буфер)
2. Первым делом находите прямоугольник, по которому пересекаются два объекта. Затем проверяете каждый пиксель этого прямоугольника - т.е. сразу два пикселя из двух прямоугольников двух изображений. Если оба пикселя имеют цвет отличный от цвета прозрачности - вуаля! столкновение есть! 3. Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
16.05.2010, 07:54 | #3 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Спасибо большое! С CopyRect'ом еще вчера разобрался, а вот со столкновениями не допер . А есть на форуме какой-нибудь примерчик считывания значений из файла построчно? (за файловую систему только взялся, трудновато )
P. S. А можно ли задать фиксированное разрешение экрана в вашем примере? Просто я так уже делал - это не совсем то, что нужно(
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) Последний раз редактировалось Alex Roth; 16.05.2010 в 07:57. |
16.05.2010, 08:08 | #4 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
То есть прочитать отдельно каждую строку файла? Можно, например, так:
Код:
Вот, кстати, пара тем на форуме на этот счет - правда, на Delphi. Бегло посмотрел - вроде оно: http://programmersforum.ru/showthread.php?t=32077 http://programmersforum.ru/showthread.php?t=92147
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же Последний раз редактировалось Гром; 16.05.2010 в 08:14. |
16.05.2010, 08:21 | #5 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Благодарю, попробую так сделать
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) |
16.05.2010, 08:33 | #6 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Спасибо, все работает. Только вы имя объекта перепутали
Я подправил, может кому-то пригодиться: Код:
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) |
16.05.2010, 09:30 | #7 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Ага, забыл подправить!)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
16.05.2010, 13:04 | #8 |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Со стрипами разобрался окончательно . Решил передавать их компоненту TImageList. Скорость работы вполне устраивает. У кого-нибудь есть примеры использования функций ChangeDisplaySettings и EnumDisplaySettings? В справке Windows SDK примеры вообще отсутствуют, а сам понять не могу
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) |
16.05.2010, 13:29 | #9 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Цитата:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
16.05.2010, 13:35 | #10 | |
Пользователь
Регистрация: 15.05.2010
Сообщений: 11
|
Ну... На вкус и цвет, как говорится.
Цитата:
"Один человек может спасти весь мир. При условии, что один человек может этот мир уничтожить." (c)
"Bad side of mind seize my dreams..." (c) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Borland C++ Builder | m@rusl@12 | C++ Builder | 1 | 25.04.2010 15:47 |
c++ Borland builder | 4ika | C++ Builder | 1 | 27.11.2009 20:32 |
работа со StringGrid(borland C++ builder) | Greenoren | Помощь студентам | 4 | 20.11.2009 22:57 |
Проблема с установкой Borland C++ Builder 6!!! | seeker78 | Помощь студентам | 4 | 21.09.2009 20:04 |
Borland C++Builder 2007 | Sota | Софт | 1 | 14.03.2008 20:21 |