发布:双人联机岛屿争夺游戏 Enemies in the dark

发布:双人联机岛屿争夺游戏 Enemies in the dark

更新历史
20200302:

  1. 首次发布

这几天用Python写了一个双人联机岛屿争夺游戏 “Enemies in the dark”。编写游戏代码花了2天,调试bug、测试游戏的流畅度、测试游戏的均衡性陆续花了3天。感觉没什么太大的问题了,因此正式对其进行发布,以分享给更多喜欢Python或喜欢游戏的人。




游戏截图:
发布:双人联机岛屿争夺游戏 Enemies in the dark

发布:双人联机岛屿争夺游戏 Enemies in the dark

发布:双人联机岛屿争夺游戏 Enemies in the dark




游戏介绍:

  • 双人游戏,每个玩家一台电脑,两台电脑在局域网内才可以联网玩。玩家1是服务端,玩家2是客户端(因此玩家2需要知道玩家1的IP地址和端口号)。
  • 岛屿数量和大小固定,岛屿位置随机生成。
  • 玩家1的岛屿上的数字为绿色玩家2的岛屿上的数字为红色无人岛上的数字为黑色
  • 玩家所占领的岛屿越大,该岛屿上的数字增速越快,同时岛屿的数字在*增加的情况下的上限越高。
  • 玩家用鼠标单击选中一个属于自己的岛屿后(岛屿A),再点击一个其他岛屿(岛屿B),就能向岛屿B输出岛屿A一半的数字(即:兵力输送)。岛屿之间距离越大,兵力输送所需的时间越长。兵力输送的过程不可见(正如该游戏的名字:Enemies in the dark,因为你不知道对方正在向你的岛屿输送多少兵力)。
  • 有一个特殊的岛屿(岛屿边框为紫色),虽然岛屿不大,但是增速特别快。不过该岛屿被占领后,岛屿的数字在*增加的情况下的上限只有20。
  • 有一个黑色、随机游走的球,其上的文字为"杀",称为"抹杀球"。玩家岛屿被抹杀球触碰后,该岛会变成无人岛,同时岛上的数字会加上岛的半径值。
  • 胜负判定依据:当玩家失去所有的岛屿,且该玩家发动的兵力输送都已结束时,该玩家就会被判为失败,而另一个玩家则会被判为胜利。




其他说明:

  • 该游戏使用Python编写,基于graphics库实现,并且没有使用多线程。
  • 可以用3个文本文件分别将选择的玩家服务端的IP地址端口记录下来,以免每次都需要重新输入。文本文件的名字可以在程序运行后通过控制台的提示来获知。
  • 缺陷:
    • 程序开始运行后会弹出游戏窗口,玩家可以将窗口移动到合适的位置。一旦玩家点击了窗口内的某一位置,就不允许再移动窗口了——一旦移动,就会造成鼠标点击位置的偏移。
    • 游戏结束后,服务端和客户端各自点击窗口左上方带有文字"关闭"的按钮即可。这里要注意的是:不要尝试通过窗口右上角(Windows系统的窗口是这样的)的"X"按钮来关闭窗口,因为窗口虽然关了,但程序仍然在运行——这可能会导致程序的不完全退出。




参考:
游戏原型参考:

  • 安卓手机游戏 Archipelago,如下图所示:

发布:双人联机岛屿争夺游戏 Enemies in the dark

游戏制作过程中,在代码实现上主要参考了: