【有贴图的小游戏】flappy bird(Python)

这个只是代码,请将文章最后的所有图片保存成一个文件夹,再把文件夹和代码一起放入另一个文件夹中即可正常运行
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()

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值