gpt4 book ai didi

python - Pygame 的基本网络

转载 作者:IT老高 更新时间:2023-10-28 21:02:56 25 4
gpt4 key购买 nike

我需要为 Pygame 项目做一些基本的网络工作。

基本上,这是一款 2D 单人游戏或合作游戏。组网只需要支持2个玩家,1个作为主机。

唯一需要发送的信息是玩家、小兵和子弹的位置。

我一直在四处阅读,Twisted 不断出现,但我之前没有做过网络,我不确定这是否有点矫枉过正。

那么,相对新手是否可以在 Pygame 中实现网络?谁能指出我正确的方向?

最佳答案

这是最近在 Reddit 上被问到的,所以我或多或少只是从那里复制我的答案。对于无法提供更多链接,我深表歉意,我有 <10 个代表,所以我一次只能发布两个。

Twisted 可能会起作用,但我对此并没有太多经验。我建议使用套接字,因为无论如何这就是 Twisted 在后台使用的。如果您想了解它们是如何工作的(在 C++ 中,但概念无处不在),Beej 的指南(google it)几乎是套接字的圣经。 Python 确实抽象了一些复杂性,但了解后台发生的事情仍然是一个好主意。

对于 Python 特定的套接字,您可以继续使用操作指南(user745294 在上面发布了链接)。 Here是一篇不错的文章,标题为“每个程序员都需要了解的关于游戏网络的知识”。它涉及不同类型的主要网络风格(客户端-服务器、p2p、udp v. tcp 等)以及一些主要游戏用于其网络的历史。

下面是我在 Python 2.6/Pygame 中制作联网“游戏”的演示的链接。它实际上不是游戏,但您创建的每个客户端都连接到服务器并控制一个角色。您可以使用箭头键移动您的角色,该角色将在所有连接的客户端上移动。我尝试在源代码中添加一些我要来回发送的内容的注释,但您可能需要一些关于套接字的知识才能理解它。

源代码在本文下方评论中的键盘链接中提供。您需要在与脚本相同的目录中提供两个图像:

  1. bg.png 是背景 Sprite 。它应该是一个 400px 宽和 300px 高的图像(如果需要,可以在 GameClient 类中更改)
  2. sprite.png 是玩家角色。它应该比背景小,以便您可以看到它四处移动。

关于python - Pygame 的基本网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9961752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com