![]() |
|
Модераторы: bsa |
![]()
|
|
| pavelslap |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.11.2009 Репутация: нет Всего: нет |
Здравствуйте, ув. форумчане, программисты. Я пишу программку, мне нужно организовать движение фигуры, состоящей из многих фигур по экрану. Работаю в Borland'e v.3.1, в графическом режиме. Движение должно происходить по нажатии соответствующих клавиш (влево,вправо,вверх,вниз).
Заранее спасибо! |
|||
|
||||
| MightyCat |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 2.11.2008 Где: Донецк Репутация: нет Всего: нет |
В таком виде как у вас, вам надо хранить координаты всех объектов и после любого изменения (передвижения/удаления фигур) рисовать все по новой.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
pavelslap, в BGI есть две функции, которые работают с областями экрана - экран->память, память->экран. Не помню, как они называются, но их надо использовать для стирания области экрана, перед перемещением фигуры. Т.е. алгоритм такой, сохраняешь область экрана куда должен вывести фигуру, выводишь фигуру, ждешь нажатия клавиш, восстанавливаешь область экрана, сохраняешь, рисуешь в новых координатах...
|
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
setactivepage & setvisualpage тебе в помощь
вот те пища для ума
Это сообщение отредактировал(а) chaos - 14.12.2009, 13:21 |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: нет Всего: 44 |
PS так же нужно иметь ввиду что режим должен быть 2х страничный
|
|||
|
||||
| pavelslap |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.11.2009 Репутация: нет Всего: нет |
как именно использовать эти функции? вместо Drawscene я подставил свою функцию, которая рисует фигуры. В итоге картинка сама скачет туда-сюда, а мне нужно по нажатии клавиш |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
pavelslap, там код для работы со страницами. т.е. есть две страницы, ты рисуешь на одной, в это время видна вторая, затем делаешь первую страницу видимой, а вторую активной и на ней рисуешь... Но ты должен иметь в виду, что рисовать надо полностью все изображение, а не только фигуру.
|
|||
|
||||
| pavelslap |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.11.2009 Репутация: нет Всего: нет |
Вы не понимаете, что я чайник? Можно по подробнее?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
pavelslap, представь, что у тебя есть книга. Одну станицу которой ты можешь видеть, а на другой рисовать (но не обязательно видеть). Функция setactivepage() задает номер страницы, на которой ты рисуешь, а setvisaulpage() - которую ты видишь. И они могут (и должны!) не совпадать. Так как страниц обычно две используется для этих целей, то когда ты рисуешь изображение на рисуемой страницы отличается от того, что ты видишь ровно на один кадр.
Если опять не понял, то поищи информацию про "двойную буферизацию" (double buffer). |
|||
|
||||
| pavelslap |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 27.11.2009 Репутация: нет Всего: нет |
А можете обьяснить, что делает каждая строка?
Это сообщение отредактировал(а) pavelslap - 17.12.2009, 23:00 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
подведи курсор к каждой функции и нажми Ctrl-F1
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |