Package: grasspy-pygame
zwpygame介绍pygame游戏编程的草蟒汉化版本,带来强大易懂的中文游戏编程体验.安装方法`python -m pip install -U grasspy-pygame使用说明#童年的回忆：掌上赛车游戏从随机数导入随机整数导入游戏派游戏派.初始化()游戏派.显示.设置标题栏("掌上赛车")屏幕尺寸=(320,400)黑色=(0,0,0)白色=(250,250,250)蓝色=(0,255,255)红色=(255,0,0)绿色=(0,255,0)橙色=(255,128,64)暗绿色=(0,64,0)网格宽度=20网格高度=20#   初始化游戏状态：1/游戏开始界面 2/游戏进行中 3/游戏结束状态=1障碍物列表=[]斑马线列表=[]得分=0加速度=4时钟=游戏派.时间.时钟类()屏幕=游戏派.显示.设置模式(屏幕尺寸,0,32)类障碍物类:套路__初始化__(自身):自身.通道_x=随机整数(0,屏幕尺寸[0]+1)自身.y=0自身.通道宽度=随机整数(4,10)*网格宽度自身.间距=随机整数(10,10)*网格高度自身.高度=随机整数(5,20)/10*网格高度自身.右位置=(0,0)自身.左位置=(0,0)自身.颜色=橙色自身.底部y=自身.y+自身.高度套路下沉(自身):自身.y+=1*加速度套路绘制(自身):如果自身.通道_x==0:自身.右位置=(自身.通道宽度,自身.y)游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))或如自身.通道_x==屏幕尺寸[0]:自身.左位置=(0,自身.y)游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))或如自身.通道_x+自身.通道宽度>屏幕尺寸[0]:自身.左位置=(0,自身.y)自身.右位置=(自身.通道_x,自身.y)游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(自身.通道_x-自身.通道宽度,自身.高度)))游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.通道宽度,自身.高度)))否则:自身.左位置=(0,自身.y)自身.右位置=(自身.通道_x+自身.通道宽度,自身.y)游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.左位置,(自身.通道_x,自身.高度)))游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(自身.右位置,(屏幕尺寸[0]-自身.右位置[0],自身.高度)))套路更新(自身):全局得分,状态自身.下沉()如果自身.y==自身.间距:障碍物列表.追加(障碍物类())如果自身.y>屏幕尺寸[1]:删障碍物列表[0]得分+=1底部y=自身.y+自身.高度汽车位置x=汽车.x汽车位置y=汽车.y汽车宽度=汽车.宽度如果汽车位置y<=底部y<=汽车位置y+3*网格高度:如果自身.通道_x==0:如果自身.通道_x<=汽车位置x<=自身.通道_x+自身.通道宽度-汽车宽度:无操作否则:状态=3或如自身.通道_x==屏幕尺寸[0]:如果屏幕尺寸[0]-自身.通道宽度<=汽车位置x<=屏幕尺寸[0]-汽车宽度:无操作否则:状态=3或如自身.通道_x+自身.通道宽度>320:如果自身.通道_x-自身.通道宽度<=汽车位置x<=自身.通道_x-汽车宽度:无操作否则:状态=3否则:如果自身.通道_x<=汽车位置x<=自身.通道_x+自身.通道宽度-汽车宽度:无操作否则:状态=3障碍物列表.追加(障碍物类())类汽车类():套路__初始化__(自身):自身.宽度=网格宽度*3自身.高度=网格高度*4自身.x=屏幕尺寸[0]/2-(网格宽度+网格宽度/2)自身.y=屏幕尺寸[1]-网格高度*4自身.速度=5自身.颜色=绿色套路左移(自身):自身.x-=2*自身.速度自身.x=最大值(0,自身.x)套路右移(自身):自身.x+=2*自身.速度自身.x=最小值(屏幕尺寸[0]-网格宽度*3,自身.x)套路更新位置(自身):点1=(自身.x+网格宽度,自身.y)点2=(自身.x,网格高度+自身.y)点3=(自身.x+网格宽度,自身.y+网格高度)点4=(自身.x+网格宽度*2,自身.y+网格高度)点5=(自身.x+网格宽度,自身.y+网格高度*2)点6=(自身.x,自身.y+网格高度*3)点7=(自身.x+网格宽度,自身.y+网格高度*3)点8=(自身.x+网格宽度*2,自身.y+网格高度*3)点列表=[点1,点2,点3,点4,点5,点6,点7,点8]返回点列表套路绘制(自身,点列表):取点于点列表:游戏派.绘画.矩形(屏幕,自身.颜色,游戏派.区块类(点,(网格宽度,网格高度)))汽车=汽车类()类斑马线类():套路__初始化__(自身):自身.高度=5*网格高度自身.宽度=3*网格高度自身.x,自身.y=(0,0)自身.中间区块x=屏幕尺寸[0]/2-网格宽度/2自身.中间区块y=自身.y+(网格高度+网格高度/2)套路绘制(自身):左虚线x=屏幕尺寸[0]/2-(网格宽度+网格宽度/2)右虚线x=屏幕尺寸[0]/2+(网格宽度+网格宽度/2)虚线高=自身.y+5*网格高度取i于范围(自身.y,虚线高+1,网格高度*2):游戏派.绘画.直线(屏幕,白色,(左虚线x,i),(左虚线x,i+网格高度))游戏派.绘画.直线(屏幕,白色,(右虚线x,i),(右虚线x,i+网格高度))中间区块宽度=网格宽度中间区块高度=网格高度*2游戏派.绘画.矩形(屏幕,白色,游戏派.区块类((自身.中间区块x,自身.中间区块y),(中间区块宽度,中间区块高度)))套路更新(自身):自身.y+=1*加速度自身.中间区块y=自身.y+(网格高度+网格高度/2)如果自身.y==自身.高度:斑马线列表.追加(斑马线类())如果自身.y>屏幕尺寸[1]:删斑马线列表[0]斑马线列表.追加(斑马线类())类游戏主体类():套路检测退出():全局状态,得分,汽车,障碍物列表取事件于游戏派.事件.获取():如果事件.类型==游戏派.离开:游戏派.卸载()游戏派.退出()如果事件.类型==游戏派.KEYDOWN:如果事件.键==游戏派.K_ESCAPE:游戏派.卸载()游戏派.退出()或如事件.键==游戏派.K_SPACE:如果状态==1:状态=2或如状态==3:得分=0障碍物列表=[]汽车=汽车类()障碍物列表.追加(障碍物类())状态=2套路开始菜单():字体=游戏派.字体.系统字体("STLITI",25)字体表层=字体.描绘("空格开始,a键向左,d键向右",真,蓝色)屏幕.贴图(字体表层,(屏幕尺寸[0]/2-字体表层.获取宽度()/2,屏幕尺寸[1]/2-字体表层.获取高度()/2))套路结束菜单():得分字体=游戏派.字体.系统字体("STLITI",30)重启字体=游戏派.字体.系统字体("STLITI",30,5)得分字体表层=得分字体.描绘("成绩:%d"%得分,真,红色)重启字体表层=重启字体.描绘(u"重新开始",真,红色)区块宽度=最大值(得分字体表层.获取宽度(),重启字体表层.获取宽度())区块高度=得分字体表层.获取高度()+重启字体表层.获取高度()区块x=屏幕尺寸[0]/2-区块宽度/2区块y=屏幕尺寸[1]/2-区块高度/2游戏派.绘画.矩形(屏幕,绿色,游戏派.区块类((区块x,区块y),(区块宽度,区块高度)))屏幕.贴图(得分字体表层,(屏幕尺寸[0]/2-得分字体表层.获取宽度()/2,区块y))屏幕.贴图(重启字体表层,(屏幕尺寸[0]/2-重启字体表层.获取宽度()/2,区块y+得分字体表层.获取高度()))只要真:检测退出()如果状态==1:开始菜单()如果状态==2:汽车点列表=汽车.更新位置()按键=游戏派.键盘.获取按键()如果按键[4]:汽车.左移()汽车点列表=汽车.更新位置()或如按键[7]:汽车.右移()汽车点列表=汽车.更新位置()屏幕.填充(黑色)取斑马线于斑马线列表:斑马线.更新()斑马线.绘制()取障碍物于障碍物列表:障碍物.更新()障碍物.绘制()汽车.绘制(汽车点列表)如果状态==3:结束菜单()时钟.设置帧率(60)游戏派.显示.更新()游戏主体类()