import pgzrun,random
WIDTH = 400
HEIGHT = 600
TITLE = '训练飞行员'
bird = Actor('机械鸟1', (75, 200))
shang=Actor('上方障碍物',(400,300-75),anchor=('left','bottom')) #上下方障碍物角色的添加,锚点的设置
xia=Actor('下方障碍物',(400,300+75),anchor=('left','top'))
bird.step = 1
z=0 #设置训练状态,0表示等待游戏进行
def update_bird():
global z#打报告,需要修改全局变量z的值
bird.step += 0.3
bird.y += bird.step
if bird.step < 0:
bird.image = '机械鸟2'
else:
bird.image = '机械鸟1'
if bird.top < 0 or bird.bottom > HEIGHT:
bird.image = '机械鸟1'
bird.y = 200
bird.step = 1
z=0 #如果超出飞行范围,游戏状态变为等待游戏进行
if bird.colliderect(shang) or bird.colliderect(xia):
bird.image='机械鸟坠毁'
z=0
shang.x=400 #设置上下方障碍物的初始x位置
xia.x=400
def draw():
screen.blit('背景', (0, 0))
bird.draw()
shang.draw() #上下方障碍物的绘制
xia.draw()
def update():
if z==1: #如果状态是游戏进行中,机械鸟才会更新自己的动作
update_bird()
shang.x-=3 #上下方障碍物朝左移动
xia.x-=3
if shang.right<0: #如果障碍物的右边比0小,说明到了左边边缘
shu=random.randint(200,400) #设置障碍物的随机高度
shang.x=400 #设置上下方障碍物的初始的x坐标
xia.x=400
shang.y=shu-75 #上下障碍物的空隙设置150
xia.y=shu+75
def on_key_down(key):
global z#打报告,需要修改全局变量z的值
if key == keys.UP:
bird.step = -5
z=1#按下空格,设置游戏状态为游戏进行中
sounds.bgm.play(-1)
pgzrun.go()