话不多说直接看效果!
上代码!
import pgzrun
import random
WIDTH = 350
HEIGHT = 600
score = 0
speed = 1
flag = 0
background = Actor('background')
Birds = [Actor('bird11'),Actor('bird22'),Actor('bird33')]
numBirds = len(Birds)
birdsIndex = 0
bird_x = 50
bird_y = HEIGHT / 2
birdsSpeed = 0
for i in range(numBirds):
Birds[i].x = bird_x
Birds[i].y = bird_y
bar_up = Actor('bar_up')
bar_up.x = 300
bar_up.y = 0
bar_down = Actor('bar_down')
bar_down.x = 300
bar_down.y = 600
def draw():
background.draw()
bar_up.draw()
bar_down.draw()
screen.draw.text(str(score),(30,30),fontsize=50,color='red')
Birds[birdsIndex].draw()
if flag:
screen.draw.text('游戏结束',(60,200),fontsize=60,fontname='fzshuangqtjw_cu',color=(237,169,82))
screen.draw.text('重新开始', (100, 350), fontsize=40, fontname='fzshuangqtjw_cu', color=(147,233,148))
def update():
global score,speed,birdsIndex,bird_y,bird_x,birdsSpeed,flag
if not flag:
bar_up.x -= speed
bar_down.x -= speed
if bar_up.x < -25 or bar_down.x < -25:
bar_up.x = WIDTH
bar_down.x = WIDTH
bar_up.y = random.randint(-200,200)
bar_down.y = 600 + bar_up.y
score += 10
if score % 50 == 0:
speed += 0.5
bird_y += (2 + speed * 0.2)
for i in range(numBirds):
Birds[i].y = bird_y
if Birds[i].colliderect(bar_up) or Birds[i].colliderect(bar_down) or Birds[i].y < 0 or Birds[i].y > HEIGHT:
flag = 1
birdsSpeed += 1
if birdsSpeed % 10 == 0:
birdsIndex += 1
if birdsIndex >= numBirds:
birdsIndex = 0
def on_mouse_down(pos,button):
global bird_y,flag,score,speed,bird_x,birdsSpeed
if not flag:
bird_y -= (50 + speed * 5)
if flag:
if button == mouse.LEFT and pos[0] > 100 and pos[0] < 262 and pos[1] > 350 and pos[1] < 398:
flag = 0
score = 0
speed = 1
birdsSpeed = 0
bird_x = 50
bird_y = HEIGHT / 2
bar_up.x = WIDTH
bar_up.y = 0
bar_down.x = WIDTH
bar_down.y = 600
pgzrun.go()