Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1

Второй игрок

12.06.2011, 07:18. Показов 1277. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!, вообщем создал я игру пингпонг, но почему то когда одновременно управляет первый и второй игрок то получается какое то залипание, а точнее ни первый ни второй игрок не управляется, вот код почему так происходит
C++
1
2
3
4
5
6
7
8
9
10
//PL1
if(keypress==VK_UP) PL1->Top-=3;
if(PL1->Top<0) PL1->Top=0;
if(PL1->Top>ClientHeight-145) PL1->Top=ClientHeight-145;
if(keypress==VK_DOWN) PL1 ->Top+=3;
//PL2
if(keypress==87) PL2->Top-=3;
if(PL2->Top<0) PL2->Top=0;
if(PL2->Top>ClientHeight-145) PL2->Top=ClientHeight-145;
if(keypress==83) PL2 ->Top+=3;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.06.2011, 07:18
Ответы с готовыми решениями:

Первый игрок делает ход в "дурака" - определить, сможет ли второй игрок побить эту карту
Заданы достоинства и масти шести шести карт первого игрока, достоинства и масти шести карт второго игрока, кроме того, известна козырная...

Выяснить, кто выигрывает при правильной игре - первый или второй игрок
Два игрока играют в следующую игру. Имеются три кучи камней, содержащих соответственно два, три, четыре камня. За один ход разрешается или...

Крестики-нолики с использованием массивов в режиме игрок-игрок
Имею код, не получается написать код для игры игрок-игрок, игрок-компьютер работает прекрасно помогите написать код, особенно обращение к...

15
68 / 55 / 11
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 07:39
переполнение буфера клавиатуры
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
12.06.2011, 07:45  [ТС]
Цитата Сообщение от tylix Посмотреть сообщение
переполнение буфера клавиатуры
И что делать?
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 08:01
PL1 - что это за компонент такой? TShape?
0
68 / 55 / 11
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 08:20
Функция GetMessage не предназначена для работы в реальном времени, нужно использовать PeekMessage

В главной функции WinMain должно быть что-то вроде этого

C++
1
2
3
4
5
6
7
  while (msg.message != WM_QUIT) {
    if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
    } else
         MyRenderingFunction();
  }
Добавлено через 15 минут
В играх обычно перехватывают клаву через DirectInput (модуль DirectX) получая полные права на ее эксплуатирование.

В общем рыть нужно в том направлении
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 08:57
tylix, все бы хорошо! но ты в код вглядись!!! у него там скорее всего TShape, или еще какой компонент, он через VLC делает, а не через WINAPI
0
68 / 55 / 11
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 09:12
Цитата Сообщение от pomkalk Посмотреть сообщение
tylix, все бы хорошо! но ты в код вглядись!!! у него там скорее всего TShape, или еще какой компонент, он через VLC делает, а не через WINAPI
VLC, MFC и всякие там другие обвертки для игр крайне не подходят, это точно.

В общем, ТС.
Установи Visual Studio 2010 Express (бесплатно!)
или Code::blocks + MinGW
И переходи к изучению opengl или directx
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 09:52
tylix, как минимум, что бы к этому перейти, нужно такие вопросы не задавать! пусть учится, у него простая игра, и сделать ему можно ее и теме средствами которыми он пытается!!!!

И вообще, тут раздел по буилдеру, кажись адресом ошибся, для VS отдельный раздел есть
0
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
12.06.2011, 16:26  [ТС]
Цитата Сообщение от pomkalk Посмотреть сообщение
PL1 - что это за компонент такой? TShape?
Ну да компонент TShape

Добавлено через 3 минуты
Ясн, короче для управления какими либо объектами одним OnKey не обойтись, нужно использовать DirectInput, да?
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 16:52
Можно! вечером тебе напишу пример!!! жди
0
68 / 55 / 11
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 16:56
Не помню где видел эту прожку пример, толи в opengl толи еще где.. там вроде через winapi все делалось..
может погуглить исходник какой нить игрушки вроде тетриса,
на исходники ру точно что нить найдешь
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 17:28
По хорошему ее и нужно на winapi делать!!! но так как он это делает, то же можно сделать! работать будет на ура!
0
68 / 55 / 11
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 17:44
Цитата Сообщение от pomkalk Посмотреть сообщение
По хорошему ее и нужно на winapi делать!!! но так как он это делает, то же можно сделать! работать будет на ура!
Ток не забудь свой пример сюда выложить, очень хочется разобраться в этом вопросе
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
12.06.2011, 17:55
C++
1
2
private:    // User declarations
    bool P1_Up,P1_Down,P2_Up,P2_Down;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
 
{
if (Key==VK_UP)P1_Up = TRUE;
if (Key==VK_DOWN)P1_Down = TRUE;
if (Key=='W')P2_Up = TRUE;
if (Key=='S')P2_Down = TRUE;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (P2_Up)this->Shape2->Top-=3;
if (P2_Down)this->Shape2->Top+=3;
if (P1_Up)this->Shape1->Top-=3;
if (P1_Down)this->Shape1->Top+=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
{
if (Key==VK_UP)P1_Up = FALSE;
if (Key==VK_DOWN)P1_Down = FALSE;
if (Key=='W')P2_Up = FALSE;
if (Key=='S')P2_Down = FALSE;
}
Все обработки делай сам!! - это самый простейший пример как это можно сделать!
1
294 / 200 / 6
Регистрация: 23.10.2010
Сообщений: 1,173
Записей в блоге: 1
12.06.2011, 21:35  [ТС]
ясн спасибо!

Добавлено через 14 минут
слушай а в чём разница твоего и моего кода??? почему в моём коде это не работает?
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
13.06.2011, 08:34
В моем коде, я устанавливаю флаги на движение, в зависимости от того в какая клавиша нажата, далее таймер их отрабатывает!!

в твоем, ты это делаешь где то не в таймере!! этим все сказано!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2011, 08:34
Помогаю со студенческими работами здесь

Какие числа может объявить игрок A на начальном шаге, чтобы игрок B в некоторый момент объявил число 00.
Игрок A объявляет двузначное число от 01 до 99. Игрок B меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный...

Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число
Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр. Полученный...

Какое количество информации при игре в крестики-нолики на поле размером 4х4 клетки получит второй игрок после первого хода первого игрока?
Какое количество информации при игре в крестики-нолики на поле размером 4х4 клетки получит второй игрок после первого хода первого игрока?

Какие числа может объявить первый игрок на начальном шаге, чтобы второй игрок в некоторый момент объявил число 00?
. Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное число к сумме его цифр....

Игрок не заходит в здание
Всем здравствуйте, вот что хотел узнать, я создал здание в 3Ds max экспортировал его в UDK, запустил проверить, и вот чего не могу понять,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru