![]() |
|
Модераторы: Rickert |
![]()
|
|
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
Наверное все знают такую игру как танчики... Цель игры защитить свою базу и уничтожить базу противника. Вопрос... как на Паскале написать эту игру для 2 и более человек, при условии, что они играют на одной клавиатуре?
|
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: нет Всего: 37 |
В чем проблемма? GetAsyncKeyState() вызывай да раздели между ними клавиши...
|
|||
|
||||
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
да нет, проблема в выстрелах... Когда допустим один танк стреляет, то всё остонавлевается и ждёт пока пролетит "Снаряд", вот можно сделать чтоб выстрелы вызывались как подпрограммы?
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
1) Обрабатывать выстрелы в отдельном потоке -ИЛИ- 2) Иметь внутри игры т.н. игровой цикл (game loop) п.2 может выглядеть следующим образом: 1) Считываем нажатую клавишу 2) Обновляем игровое состояние (в том числе и положение ракет) 3) Обновляем представление состояния - т.е. графическую часть Второй вариант больше соответствует идеологии игрового программирования. Это сообщение отредактировал(а) arilou - 9.4.2007, 09:29 |
|||
|
||||
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
Ещё вопрос: При передвижении танков ракет и пр. объектов, на экране появляются мерцания. Как можно избавиться от них?
Можно поподробнее? |
|||
|
||||
| Ryoga |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 262 Регистрация: 20.9.2005 Репутация: 3 Всего: 6 |
Я бы посоветовал поподробнее, всё же, про второй способ спрашивать... ;)
|
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
Да уж, распаралеливание потоков применяется в крупных проектах, так как этот способ добавляет драгоценные FPS. Но его реализовать не так уж просто, а код при этом теряет свою удобочитаемость.
А мерцает, потому что нет заднего буфера. Задний буфер (Back Buffer) это скрытая от глаз поверхность на которой рисуется так, как ты это делаешь на экране. А после рисования, эта поверхность показывается на экран. Вообще мерцание появляется тогда, когда ты стираешь старую картинку и рисуешь новую. При использовании буфера мерцание происходит именно на нем, и пользователь этого не видит. |
|||
|
||||
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
|
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
Пример на чём? на паскале или на Делфи? А то я что-то на паскале сомневаюсь, что такое возможно
|
|||
|
||||
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
Ясно... Просто я с делфи незнаком...
|
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
Так Делфи это тот же паскаль, только под Windows. Если ты знаком с Паскалем, то перейти на Делфи займет максимум неделю (это если очень лениться) ;)
|
|||
|
||||
| Masas |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 21.8.2006 Репутация: нет Всего: нет |
Это потипу VB и QB? А где можно делфи скачать? Дайте ссылочку если ненсложно
|
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 5 Всего: 27 |
||||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
Masas,
|
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |