|
18 / 18 / 15
Регистрация: 17.02.2013
Сообщений: 85
|
|
Сетевая игра на pygame12.02.2015, 18:35. Показов 13962. Ответов 3
Метки нет (Все метки)
Решил написать на python'е небольшую игру с использованием pygame. В планах была игра по сети. Решил использовать сокеты. Но вот как всё реализовать я до конца не могу понять.
Игра на 2-х игроков, причем пошаговая (интересно было б и с не пошаговой разобраться на будущее...). В своё основное время игра висит на pygame.event.wait(). Для игры на одном компьютере в режиме двоих игроков все хорошо, а вот если ход нужно передавать по сети возникает проблема: если ждать хода от второго игрока, то нет ни какой реакции на действия пользователя (это ясно, теперь всё висит на data = tcpSock.recv(BUFSIZE) а не на pygame.event.wait() ). На ум сразу приходит использовать несколько потоков. Тогда 1-й следит за действиями пользователя, а 2-й ждёт хода оппонента с сети. Хорошо. Допустим 2-й поток принял ход, но как ему тогда сказать 1-му, чтобы тот обработал это событие? Ведь 1-й всё еще ждет что-то от пользователя (pygame.event.wait() ). Как это решить я не придумал...... Взаимодействие между игроками должно осуществляться без сервера(в смысле кто-то из игроков им будет, или вообще p2p, вот только как сделать p2p я тоже не понимаю), только указанием ip-адреса оппонента. К тому же ооооочень хочется окошка с чатом Думал сделать его в отдельном окне с использованием tKinter, но вот как прикрутить tKinter к pygame, да ёще чтобы окно показывалось только при игре по сети/инету.... Тут же и вопрос с передачей данных: для чата использовать тот же порт (только теперь нужно ставить в начале маркер, это ход или сообщение) или создать ещё связь (пару клиент-сервер или использовать иной порт (может тут я сказал что-то глупое, извините, опыта маловато)).Но хотя бы с передачей хода разобраться. Может я делаю что-то не так в принципе или есть способ сделать это намного проще - подскажите пожалуйста. Буду очень рад как объяснениям "на пальцах" так и примерам. Может есть ещё библиотеки какие....
0
|
|
| 12.02.2015, 18:35 | |
|
Ответы с готовыми решениями:
3
игра-грузчик Pygame Игра на Python с использованием библиотеки Pygame! Ложится игра при смене цикла на PyGame |
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 18.02.2015, 10:25 | |
|
_N_,
1) По поводу чата, сомневаюсь, что можно прикрутить в принципе tk к pygame, я думаю все окошки самому пилить придётся. Просто тупо вынести в отдельный потом, пускай вертиться. Пересылать лучше по одному порту. Как-то жирно два порта на одну программу. Придумайте свой формат данных на основе, например, json. А по поводу игры по сети, надо еще подумать. А так прочтите вообще как такое делают: тут можно посмотреть
1
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 18.02.2015, 13:07 | |
|
1
|
|
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 18.02.2015, 16:38 | |
|
alex925, да, возможно и pickle проще) Привычка с web использовать json, забываешь про стандартные вещи.
0
|
|
| 18.02.2015, 16:38 | |
|
Помогаю со студенческими работами здесь
4
Как создать apk для андроид (игра Pygame) Python (+Pygame), аркадная игра "Получи диплом" При импорте pygame пишет что нет модуля pygame.base Ошибка в pygame AttributeError: 'pygame.Rect' object has no attribute 'blit'
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|