![]() |
|
![]() ![]() ![]() |
|
InsideYou |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.5.2008 Репутация: нет Всего: нет |
Доброе время суток!
Такая ситуация, игра пишется в MFC. Есть объект, который управляется мышкой, он прорисовывается на экране. Есть ещё несколько других объекто(2-3), они тоже прорисовываются на экране, но двигаются хаотично при помощи рандома. Получается так, что пока объект который двигает хаотично не закончит свой путь, то мышкой заставить двигаться главный объект нельзя. Как можно сделать чтобы все объекты синхронно двигались по экрану? Заранее спасибо. P.S. Срочно-завтра сдача курсача. |
|||
|
||||
rrrFer |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.5.2008 Где: Красноярск Репутация: нет Всего: 1 |
думаю примерно так:
тут obj это обьекты которые двигаютс, в Тime отсчитывается как долго они будут двигаться, если до какого-то события то пиши: for(;;){} а внутри где-нибудь break; step() - обьект будет сдвигаться, тогда получистя что обрабатываться объекты будут почти параллельно. Вобщем функция отрисовки того самого хаотичнодвигающегося объекта должна прерываться и передавать управление в Timer(), чтобы отсчитывать время можно использвать time() из time.h, то есть:
Это сообщение отредактировал(а) rrrFer - 3.6.2008, 18:04 |
||||
|
|||||
InsideYou |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 25.5.2008 Репутация: нет Всего: нет |
Насчёт 3х движущихся объектов Вы правы, но суть не в этом. Пока они все 3 не закончат свой путь мышка двигатся не будет. Суть игры-может видели когда-то: летают по окну 2-3 квадрата и ты сматываешь от них своим хвадратом при помощи мышки. Вот так вот.
|
|||
|
||||
dizzy1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: 10 Всего: 25 |
Не знаю нужно ли тебе теперь решение, но можно попробовать добавить вызовы функции PumpMessage() в то вычисление, которое создает длительный промежуток "зависания" приложения. Чем больше - тем лучше.
Вся соль в том, что для отклика на ввод пользователя и расчетов программы в MFC используется 1 поток. (AFAIK В отличие от delphy, где нет таких проблем). Эта функция прерывает работу программы для отработки ввода пользователя. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |