利用pgzero做一个接球的小游戏说明pgzero为python的一个用于游戏制作的库，它基于pygame模块可用如下命令去安装pip install pygame pip install pgzero接下来我们就开始写代码了制作参数新建一个define.py的文件，定义一系列常量#窗口标题 WINDOW_TITLE = "Don't Drop It" #窗口(宽，高) WINDOW_SIZE = (800,600) #背景颜色 WINDOW_BACKGROUNT_COLOR = 'white'图形我们新建一个名为actors.py的文件并导入模块import pgzrun import pygame.rect import define import random小球类建立一个填充颜色的圆形图形的类（小球）class Ball: def __init__(self): #球的初始位置 self.init_pos = (define.WINDOW_SIZE[0]//2,define.WINDOW_SIZE[1]//2) #球的位置 self.x,self.y = self.init_pos #球的半径 self.r = 20 #球的颜色 self.color = 'blue' #球的速度 self.speed_x = random.sample([4,-4,-4],1)[0] self.speed_y = 4 #绘制 def show(self,surface): surface.draw.filled_circle((self.x,self.y),self.r,self.color) #动画 def action(self): #移动 self.y = self.y + self.speed_y self.x = self.x+self.speed_x #当球触碰边界 if self.y >= define.WINDOW_SIZE[1]-self.r or self.y <= self.r: self.speed_y = -self.speed_y if self.x >= define.WINDOW_SIZE[0]-self.r or self.x<=self.r: self.speed_x = -self.speed_x #碰撞改变方向 def changeDirect(self): lst_x = [1,-1,-self.speed_x,self.speed_x,5,-5,-self.speed_x,self.speed_x,5,-5] ra_num = random.randint(0,len(lst_x)-1) self.speed_x = lst_x[ra_num] lst_y = [-3,-4,-5,-3,-4] ra_num = random.randint(0, len(lst_y) - 1) self.speed_y = lst_y[ra_num]木板类玩家控制的木板的类class Bar: def __init__(self): #宽度和高度 self.width = define.WINDOW_SIZE[0]/6 self.height = define.WINDOW_SIZE[1]/30 #初始位置 self.init_pos = (define.WINDOW_SIZE[0]//2,define.WINDOW_SIZE[1]*0.7) self.x = self.init_pos[0] #颜色 self.color = 'red' #绘制 def show(self,surface): if self.x >= define.WINDOW_SIZE[0]-self.width: self.x = define.WINDOW_SIZE[0]-self.width if self.x<=0: self.x = 0 box = pygame.rect.Rect((self.x,self.init_pos[1]),(self.width,self.height)) surface.draw.filled_rect(box,self.color)主程序游戏所用的图形已经定义了，接下来该利用这些图形进行一系列的交互了首先导入模块import pgzrun import pygame,sys import define import actors from tkinter import messagebox将我们能定义的图形对象实例化#创建游戏对象 ball = actors.Ball() bar = actors.Bar()设置窗口大小TITLE = define.WINDOW_TITLE WIDTH, HEIGHT = define.WINDOW_SIZE碰撞检测，此处我们自己来完成碰撞检测#碰撞检测 def actorsAcol(): if ball.y == bar.init_pos[1] and bar.x <= ball.x and ball.x<=bar.x+bar.width: ball.changeDirect()判断游戏结束#判断游戏结束 def judgeGameOver(): if ball.y+ball.r*2 >= define.WINDOW_SIZE[1]: pygame.quit() messagebox.showinfo('GameOver','GameOver') sys.exit()下面的函数为pgzrun预留出的接口的，我们只需写函数的具体实现即可，无需手动调用绘制图形#pgzurn绘制函数,无需手动调用，只需定义即可（名称必须为draw） def draw(): screen.fill(define.WINDOW_BACKGROUNT_COLOR) ball.show(screen) bar.show(screen)刷新帧#pgzurn刷新函数 def update(): ball.action() actorsAcol() judgeGameOver()获取鼠标位置传给 bar对象#pgzurn获取鼠标位置 def on_mouse_move(pos): bar.x = pos[0]-bar.width//2程序入口pgzrun.go()注意：pgzrun.go()不能与if __name__ == '__main__':同时使用，否则会创建窗口失败，至于原因我也不知道为什么，可能跟这个模块的实现方式有关运行主窗口游戏结束扩展这个游戏还可以添加障碍物类和分数结算功能，其实现原理与碰撞检测跟Bar类相似，这里不过多叙述了开源传送门：Github
Conda安装及第一个py程序安装Conda下载安装在Anaconda官网下载Anaconda打开Conda安装程序设置好安装目录(这个一定要记好，后边要用),比如我的目录就是 D:ProgramDataAnaconda3\剩下的按默认进行就可以了环境变量配置环境变量配置非常重要，否则无法正常使用conda在桌面->此电脑->右键属性点击系统高级设置点击环境变量打开环境变量窗口后，在系统变量一栏点击 Path 再点击 编辑点击新建，设置环境变量(图中是我的安装目录，在你的电脑上要按你的安装目录来)D:\ProgramData\Anaconda3 D:\ProgramData\Anaconda3\Scripts D:\ProgramData\Anaconda3\Library\bin D:\ProgramData\Anaconda3\Library\mingw-w64\bin环境变量有四行所以新建四次，设置完后点确定就行检查是否安装成功，按住Win+R,写入cmd，回车敲入命令conda --version显示版本号则安装成功写第一个Py程序再任务栏搜索框里搜索Anaconda Navigator（这个功能只有Win10/Win11有，其他版本在目录C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)）打开文件所在位置，复制一份 Anaconda Navigator快捷方式到桌面打开Anaconda Navigator(需要加载一段时间)，点击 Spyder Launch按钮在Spyder里输入以下代码，输出“hello,world”x = "hello,world" print(x)就完成第一个Python程序了