Pygame 的基本网络

2024-02-08

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

基本上,它是一款 2D 单人或合作游戏。网络只需要支持两个玩家,其中一个作为主机。

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

我一直在阅读并Twisted https://en.wikipedia.org/wiki/Twisted_(software)不断出现,但我以前没有做过网络,我不确定这是否有点过头了。

那么,对于一个相对新手来说,是否有可能在 Pygame 中实现网络呢?


最近在 Reddit 上有人问这个问题,所以我或多或少会从那里复制我的答案。我很抱歉无法提供更多链接,我的代表人数

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

对于Python特定的套接字,您可以继续使用howto(user745294在上面发布了链接)。Here http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/这是一篇很好的文章,标题为“每个程序员都需要了解游戏网络”。它涉及不同类型的主要网络风格(客户端-服务器、p2p、udp 与 tcp 等)以及一些主要游戏用于其网络的历史。

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

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

  1. bg.png是背景精灵。它应该是一个 400 像素宽、300 像素高的图像(这可以在GameClient如果需要的话可以上课)
  2. sprite.png是玩家角色。它应该小于背景,以便您可以看到它四处移动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pygame 的基本网络 的相关文章

随机推荐