文件“game_functions.py”存放跟游戏有关的所有业务逻辑函数(分析重点代码),代码如下图:
关于事件的函数:
1.函数“check_keydown_events”,当按下键盘右键“K_RIGHT”,移动状态“moving_right”为true;当按下键盘左键“K_LEFT”,移动状态“moving_left”为true;当按下“q”键时,则退出程序“sys.exit()”;
2.函数“check_keyup_events”,当松开右键“K_RIGHT”,移动状态“moving_right”为False;当松开左键“K_LEFT”,移动状态“moving_left”为False;
3.函数“check_events”用来响应按键和鼠标事件,当点击屏幕关闭按钮“QUIT”,则退出系统“sys.exit()”;当按键时(KEYDOWN),调用函数“check_keydown_events”;当松开按键时(check_keyup_events),调用函数“check_keyup_events”。
关于球的函数:
1.函数“create_ball”用来创建单个球,为了增加游戏趣味性,创建球的位置设置为随机(randint(0, settings.screen_width));
2.函数“update_balls”:
1)当程序没有球的时候(len(balls)),创建一个球,保证程序只有一个球落下;
2)当人接住球时(pygame.sprite.spritecollideany),删掉创建的球,并增加游戏得分(注意执行scoreboard.prep_score(),不然不会更新最新分数);
3)当人没接住球,球落到底部时(ball.rect.bottom >= screen_rect.bottom),删除创建的球,并减少可接失的数量(注意执行scoreboard.prep_balls(),不然左上角显示的球数量不会更新);
4)当可接失的数量“settings.ball_miss_number”为0时,显示“Game Over”并停止程序。