python实现人接球的小游戏
本文介绍怎么利用python+pygame实现人接球的小游戏,游戏规则:游戏开始后,每一次会从顶部掉落一个球,底部有一个人可以左右移动接球;当人接住球时,右上角的积分会增加10分,而当人接不住球时,左上角的球数量会减1,当连续三次接不住球时,屏幕中间会显示“Game Over”并停止游戏,效果图如下图: Tips:游戏可优化的地方,增加等级(每接到多少球,球的速度变快或者球变多,注意等级变高,接球的分数也要跟着变)、增加游戏最高分、增加声效和碰撞效果等。

工具/原料
Sublime Text
Git
新建类
1、 根据游戏需要,新建类“Settings”,用来定义一些必须的基本属性和初始值: 1.scre髫潋啜缅en_width和screen_height用于设置屏幕宽高,后面为了方便操作,改为全屏显示; 2.bg_color用于设置屏幕背景色,系统默认是黑色; 3.people_move_speed用于设置人物左右移动速度,数值越大移动越快; 4.ball_drop_speed用于设置球落下的速度,数值越大速度越快(实现等级越高,速度越快,可以修改这里的值*基数); 5.game_score用于显示右上角的得分情况; 6.ball_score用于设置接到一个球得多少分(实现等级越高,分数越高,可以修改这里的值*基数); 7.ball_miss_number用于设置丢失多少个球就结束游戏。

3、 新建类“People”,用来定义“People”类的基本属性及初始值,和所需要的函数(分析重点代码),代码如下图: 1.设置两个初始移动状态moving_left和moving_right用来判断左右移动; 2.函数“update”,当按下右键并且未到右边缘时(self.moving_right and self.rect.right < self.screen_rect.right),增加centerx的值,从而实现右移动效果(左移动原理类似); 3.函数“blitme”用来绘制人物图片到屏幕上(blit只会绘制到缓冲区,需要flip才能显示在屏幕)。

5、 新建类“Scoreboard”,用来定义“Scoreboard”类的基本属性及初始值,和所需要的函数(分析重点代码),代码如下图: 1.函数“__init__”的“scaleValue”为左上角球图片的缩放值; 2.函数“prep_score”用来将得分转换为渲染的图像(代码中的“format”语句让得分显示格式为“1,000”); 3.函数“prep_balls”根据可接失数量“ball_miss_number”循环添加ball到编组(balls)里面; 4.函数“show_score”用来绘制可接失的数量图和游戏得分到屏幕上。


运行程序
1、 如下图环境下(catchball.py文件路径下),执行语句“python catchball.py”,则弹出程序窗口,并可对其操作游玩。
