Python制作一款简单的乒乓球小游戏

2023-11-11

开发工具

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块。

#相关文件

关注公众号:Python学习指南,回复“乒乓球”即可获取

环境搭建

pip安装需要的相关模块即可。

原理简介

游戏规则:

操作:

玩家1(右)通过操作↑↓键上下移动球拍;

玩家2(左)通过操作ws键上下移动球拍(仅双人模式有效)。

得分:

玩家没有接住乒乓球则失一分,即对方玩家得一分。得分先累计到11的一方即为获胜方。

逐步实现:

Step1:开始界面

开始界面其实很简单,只需要定义两个按钮,然后当检测到玩家点击按钮时,将按钮对应的值传到接下来的游戏主循环中即可。代码实现如下:

'''定义按钮'''
def Button(screen, position, text, button_size=(200, 50)):
  left, top = position
  bwidth, bheight = button_size
  pygame.draw.line(screen, (150, 150, 150), (left, top), (left+bwidth, top), 5)
  pygame.draw.line(screen, (150, 150, 150), (left, top-2), (left, top+bheight), 5)
  pygame.draw.line(screen, (50, 50, 50), (left, top+bheight), (left+bwidth, top+bheight), 5)
  pygame.draw.line(screen, (50, 50, 50), (left+bwidth, top+bheight), (left+bwidth, top), 5)
  pygame.draw.rect(screen, (100, 100, 100), (left, top, bwidth, bheight))
  font = pygame.font.Font(config.FONTPATH, 30)
  text_render = font.render(text, 1, (255, 235, 205))
  return screen.blit(text_render, (left+50, top+10))


'''
Function:
  开始界面
Input:
  --screen: 游戏界面
Return:
  --game_mode: 1(单人模式)/2(双人模式)
'''
def startInterface(screen):
  clock = pygame.time.Clock()
  while True:
    screen.fill((41, 36, 33))
    button_1 = Button(screen, (150, 175), '1 Player')
    button_2 = Button(screen, (150, 275)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python制作一款简单的乒乓球小游戏 的相关文章

随机推荐

  • 数据结构与算法(三):栈与队列

    一 栈 1 基本概念 2 栈的顺序存储结构 3 两栈共享空间 4 栈的链式存储结构 5 栈的应用 递归 二 队列 1 基本概念 2 队列的顺序存储结构 三 总结 上一篇 数据结构与算法 二 线性表 中介绍了数据结构中线性表的两种不同实现 顺
  • 反转链表+交换两个链表的节点

    目录 编辑 一 反转链表 1 题目描述 2 例子 3 题目接口 4 分析以及解题代码 1 迭代法 2 递归写法 二 两两交换两个链表中的节点 1 题目描述 2 例子 3 题目接口 4 题目分析以及解法 一 反转链表 1 题目描述 首先来看看
  • Chapter One : 开启 Python 之旅

    目录 1 计算机的组成 了解 2 计算机如何处理程序的 了解 3 编程语言 了解 4 了解 Python 4 1 Python 的版本 4 2 Python 的应用领域 5 搭建 Python 开发环境 5 1 下载并安装 Python 2
  • linux c 打印调用某函数的文件名与行

    只做记录 供自己翻 http www voidcn com article p ruuoijoc mn html
  • win全盘重分- DiskGenius

    因为最近找不到了太好的素材 来整理一下全盘重分的素材 全盘分区最好的是制作U盘启动器 在U盘的PE里进行分区 使用工具是相当简单的 PE使用的是冰封U启动 第一步打开DiskGenius软件 算是系统重装分区用的最多的也是最普遍的工具之一
  • 【概率论与数理统计】猴博士 笔记 p26-28 F、f的性质、一、二维连续型求期望、方差

    F f的性质 做法 上述公式的原理 做一些题目来练习套公式 例1 解 P X 2 F
  • Pycharm中如何配置已有的环境

    这篇是关于在pycharm中配置已经在anaconda中存在的虚拟环境 1 File settings 2 在设置弹窗中选择Project Interpreter 然后点击add 3 根据图操作 4 随后找到Anaconda中envs中想要
  • 2022年苹果开发者账号/AppleID如何更改绑定的手机号

    2022年苹果开发者账号 AppleID如何更改绑定的手机号 1 打开Apple ID 网址 登陆进去 https appleid apple com cn 2 点击编辑选项 将原来的手机号删除 然后添加受信任号码 点击完成 修改密码 修改
  • sendto: Network is unreachable问题的解决

    在用busybox生成根文件系统之后 进入系统ping外网是不能用的 因此需要修改一下几个文件 配置ip为固定 并且开机自动启动网卡 在 etc init d rcS中添加一下内容 网络开机自启动设置 ifconfig eth0 up ud
  • RabbitMQ整合SpringBoor以及RabbitMQ的延迟队列

    延迟队列的概念 前面介绍了死信队列 针对于ttl进入死信队列的情况 假如我们把前面的消费者一关闭 然后对所有的消息都进行设置过期时间 这样是不是就形成了一个延迟队列了 使用场景 比如订单超时关闭 假如我们使用定时任务 假如数据量很大的情况下
  • SpringBoot —— 搭建SpringBoot+Maven项目

    文章目录 前言 一 创建步骤 1 创建SpringBoot项目 选择JDK版本 2 填写包名和项目名 3 创建web项目 4 创建web项目 二 测试 1 配置maven 2 创建测试方法 前言 SpringBoot系列Demo代码 使用i
  • 【复盘与分享】第十一届泰迪杯B题:产品订单的数据分析与需求预测

    文章目录 题目 第一问 第二问 2 1 数据预处理 2 2 数据集分析 2 2 1 训练集 2 2 2 预测集 2 3 特征工程 2 4 模型建立 2 4 1 模型框架和评价指标 2 4 2 模型建立 2 4 3 误差分析和特征筛选 2 4
  • python设置绘图大小_解决Python图形界面中设置尺寸的问题

    Python有自己内置的标准GUI库 Tkinter 只要安装好Python就可以调用 今天学习到了图形界面设计的问题 刚开始就卡住了 为啥呢 就是用geometry size 设置窗口尺寸大小 如800X600 X 从哪里来成了问题 首先
  • 你若有心,我怎会无情

    人和人之间 全靠一颗心 情与情之间 全看一份真 一生很长 什么样的人都会遇到 有的人口蜜腹剑 嘴上跟你说着甜言蜜语 心里却盘算着利用你得到些什么 有的人虚伪自私 表面上跟你掏心掏肺 等你需要帮助的时候却转身离开 所以 看人 不能只看表面 也
  • 复制构造函数(拷贝构造函数)

    也许很多C 的初学者都知道什么是构造函数 但是对复制构造函数 copy constructor 却还很陌生 对于我来说 在写代码的时候能用得上复制构造函数的机会并不多 不过这并不说明复制构造函数没什么用 其实复制构造函数能解决一些我们常常会
  • #1062 - Duplicate entry '0' for key 'PRIMARY'—— mysql的小问题

    问题 1062 重复输入 0 原因 我估计可能是数据表中主键这一栏已经有一个为 0 了 一般出现这种问题是以int类型的字段在输入时没有输如数据 而int类型默认值为 0 而你之前第一条数据已经默认主键如 id为默认的 0 了 于是就报错说
  • java list有序还是无序_java的集合框架

    前言 使用java编程语言的开发人员 在日常开发过程中经常会使用到java的一些集合类 不过这些集合类太多 很多人对它们的特点和使用场景不是特别的了解 通过此文给大家总结一下这方面的知识 方便大家面试或者是初学者理解 Java集合类主要由C
  • 四均线交易系统

    策略说明 基于4均线系统进行判断交易 系统构成 5和20周期均线 3和10周期均线 构成的两组不同周期的均线组合 入场条件 当2组均线均成空头排列时且当前价低于上根BAR最低价入场 出场条件 1 小周期空头均线组合成多头排列 2 两组多头均
  • C++ 获取系统时间(微秒)

    int main 程序开始时间 std chrono time point
  • Python制作一款简单的乒乓球小游戏

    开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些Python自带的模块 相关文件 关注公众号 Python学习指南 回复 乒乓球 即可获取 环境搭建 pip安装需要的相关模块即可 原理简介 游戏规则 操作 玩家1