这个只是代码,请将文章最后的所有图片保存成一个文件夹,再把文件夹和代码一起放入另一个文件夹中即可正常运行
from Walimaker import*
import random#随机数模块
setup(288,512)
bgpic('./Flappy Bird/bg_day.png')
land1=Character('./Flappy Bird/land.png')
land2=Character('./Flappy Bird/land.png')
land2.y=-240
land1.y=-240
land2.x=336
v=5#角色移动速度
land1.layer=1
land2.layer=1
gd=Character('./Flappy Bird/text_game_over.png')
gd.hide()
gd.y=120
bird_img=['./Flappy Bird/bird0_0.png',
'./Flappy Bird/bird1_1.png',
'./Flappy Bird/bird2_2.png',]
bird=Character(bird_img)
bird.play_anim()#播放动画
bird.dt=0.1#播放动画速度
bird.vy=0
bird.ay=-1
bird.x=-35
bird.w=-8
bird.dw=-0.3
#ti
title=Character('./Flappy Bird/title.png')
title.y=120
#guan到
d=80
pipe_up1=Character('./Flappy Bird/pipe2_up.png')
pipe_down1=Character('./Flappy Bird/pipe_down.png')
y=random.randint(-80,180)
pipe_up1.y=y-d-160
pipe_down1.y=y+d+160
pipe_up2=Character('./Flappy Bird/pipe2_up.png')
pipe_down2=Character('./Flappy Bird/pipe_down.png')
y=random.randint(-80,180)
pipe_up2.y=y-d-160
pipe_down2.y=y+d+160
#x
pipe_up1.x=600
pipe_up2.x=792
pipe_down1.x=600
pipe_down2.x=792
#xxdddbutten
button=Character('./flappy Bird/button_play.png')
button.y=-100
bird.ay=0
bird.vy=0
running=False
#3fen
score=0
scoreText=TextBox(100,font='./flappy Bird/Boxy-Bold.ttf')
scoreText.print(score)
scoreText.goto(0,150)
scoreText.color=(255,255,255)
s1=Character('./Flappy Bird/pipe_up.png')
s1.scale(0.1,3)
s2=Character('./Flappy Bird/pipe_up.png')
s2.scale(0.1,3)
s2.x=pipe_up2.x
s1.x=pipe_up1.x
s1.layer=-1
s2.layer=-1
title.layer=100000
while True:
if running:
land1.backward(v)
land2.backward(v)
if land1.x<-336:
land1.x=land2.x+336
if land2.x<-336:
land2.x=land1.x+336
bird.vy +=bird.ay
if get_mouse_just_clicked() or key_just_pressed(K_SPACE):
bird.vy=10
bird.rot=30
bird.w=0
bird.y+=bird.vy
bird.w+=bird.dw
bird.rot+=bird.w
bird.rot=max(-90,bird.rot)
if running:
pipe_up1.backward(v)
pipe_up2.backward(v)
pipe_down1.backward(v)
pipe_down2.backward(v)
if pipe_up1.x<-190:
pipe_up1.x=pipe_up2.x+192
pipe_down1.x=pipe_down2.x+192
s1.show()
if pipe_up2.x<-190:
pipe_up2.x=pipe_up1.x+192
pipe_down2.x=pipe_down1.x+192
s2.show()
s1.x=pipe_up1.x
s2.x=pipe_up2.x
if bird.collide(s1):
s1.hide()
score+=1
scoreText.print(score)
if bird.collide(s2):
s2.hide()
score+=1
scoreText.print(score)
if bird.collide(pipe_up1)\
or bird.collide(pipe_down1)\
or bird.collide(pipe_up2)\
or bird.collide(pipe_down2)\
or bird.collide(land1)\
or bird.collide(land2):
running=False
bird.w=-1
if bird.collide(land1) or bird.collide(land2):
bird.y=-175
bird.vy=0
button.show()
gd.show()
if button.get_mouse_just_released():
button.hide()
running=True
bird.vy=10
bird.rot=-15
bird.y=0
bird.ay=-0.9
bird.dw=-0.3
bird.dt=0.1
bird.w=0
pipe_up1.x=600
pipe_up2.x=792
pipe_down1.x=600
pipe_down2.x=792
title.hide()
gd.hide()
s1.x=pipe_up1.x
s2.x=pipe_up2.x
s1.show()
s2.show()
score=0
scoreText.print(score)
update()