相关文件
源码分享,问题解答!!
关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
对了大家可以关注小编的公众号哟~~
有很多资源可以领取的哟!!
大家也可以去b站看我的一些教学视频哟!!
更多Python视频教学:Python视频教学(b站)
Python日志
开发环境
Python版本:3.6.4
相关模块:
pygame模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理介绍
因为是重写的,所以就重新介绍一下实现原理呗。
首先,我们来写个开始界面,让他看起来更像个游戏一些。效果大概是这样的:
原理也简单,关键点有三个:(1)下方深绿浅绿交替的地板不断往左移动来制造小鸟向前飞行的假象;(2)每过几帧切换一下小鸟的图片来实现小鸟翅膀扇动的效果:
(3)有规律地改变小鸟竖直方向上的位置来实现上下移动的效果。
具体而言,代码实现如下:’’‘显示开始界面’’’
def startGame(screen, sounds, bird_images, other_images, backgroud_image, cfg):
base_pos = [0, cfg.SCREENHEIGHT*0.79]
base_diff_bg = other_images['base'].get_width() - backgroud_image.get_width()
msg_pos = [(cfg.SCREENWIDTH-other_images['message'].get_width())/2, cfg.SCREENHEIGHT*0.12]
bird_idx = 0
bird_idx_change_count = 0
bird_idx_cycle = itertools.cycle([0, 1, 2, 1])
bird_pos = [cfg.SCREENWIDTH*0.2, (cfg.SCREENHEIGHT-list(bird_images.values())[0].get_height())/2]
bird_y_shift_count = 0
bird_y_shift_max = 9
shift = 1
clock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE or event