Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Одновременное выполнение нескольких функций. Как? 
:(
    Опции темы
Spirit87
Дата 4.5.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



Вем привет.
Я должен написать игру типа "сквош".  Это такая игра, где вы видите две ракетки в виде прямоугольников (одна ваша, другая CPU) и шарик в виде маленького квадратика, который вы должны отбивать своей ракеткой, а CPU -- своей. Напоминает настольный теннис.
И в ходе написания программы возник следующий вопрос. Насколько я понял, программа должна состоять, как минимум, из двух частей. Одна из них должна осуществлять движение мяча и соответствующее передвижение ракетки CPU. Вторая должна реагировать на сообщения о передвижении мыши пользователем и изменять координаты соответствующей ракетки.
Вопрос: как сдлеать, чтобы выше упомянутые части программы выполнялись одновременно? Мне посоветовали использовать потоки. Действительно ли потоки могут здесь помочь?
PM MAIL   Вверх
Fazil6
Дата 4.5.2006, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 3
Всего: 60



Цитата

Действительно ли потоки могут здесь помочь?

действительно. Тебя не обманули. 
PM MAIL   Вверх
likehood
Дата 4.5.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: нет
Всего: 24



А ты начни писать, многие вопросы отпадут сами собой smile  
PM MAIL   Вверх
Heremum
Дата 4.5.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 7.4.2006

Репутация: нет
Всего: нет



Spirit87
Видно вы только только начали заниматься разработкой игровых движков, хотябы самых примитвных. Это хорошо, я всегда так радуюсь, когда нахожу новичка, которому могу рассказать что-дибо! smile
Во-первых: разработку любой игры не делят на части по функциями: ракетка, мяч и т.п. Их делят по принципиально разным аспектам программирования: графика, звук, алгоритмические расчёты. Обработак движения мыши, полёта мячика и движение ракетки - это всё аналитика и не надо помещать обработку их в разные потоки, потому это не требуется, да и так твоя игра не будет правильно работать.
Для начала о "многопоточности" или так называемой мульти-задачности windows: программы запущенные в windows не выполняются одновременно никогда. Это невозможно впринципе, потому что процессор у тебя один(или у тебя их больше? smile Тогда конечно разговор другой) В Windows 18 раз за секунду происходит переключение между всеми запущенными программами, и выполняется какая-то их маленькая часть(например один полный машинный код). Так как переключение идёт быстро, то нам кажется, что программы работают параллельно. На самом деле это называется псевдо-мультизадачность системы.
Смотри: ты сначала обсчитываешь то, где находится ракетка, где находится мяч, отражается ли мячик от ракетки или пролетает мимо, забивая гол, исходя из этого ты знаешь координаты ракеток, мячика и вообще положение дел, и только лишь когда ты их будешь знать, ты сможешь нарисовать текущий кадр сцену игры. Поэтому если ты юудешь выполнять просчёты параллельно, то расчёты будут не верны, будут ошибки и соответственно игры не получится. Сначала просчёт всей аналитики, а потом вывод на экран. Запомни. 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0424 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.