小学生python编程---忍者大战

这是一个使用pgzrun库编写的双人对战游戏,包含角色移动、跳跃、射击和生命值显示等功能。玩家可以控制各自的角色进行攻击,当一方生命值归零时,对应的游戏胜利画面会显示出来。游戏中,角色通过键盘控制移动和跳跃,按下特定键发射飞镖。背景音乐和音效为游戏增添了氛围。
摘要由CSDN通过智能技术生成

孩子的第三个作品:


from pgzrun import *
music.play("麻宫雅典娜.mp3")
WIDTH = 1280
HEIGHT = 720

bg = Actor("bg.png")
#{
jump_speed1 = 12
jump1 = False
jump_speed2 = 12
jump2 = False
#----------------------------------------------------------------
life_show1 = Actor("life_show1.png", [120, 50])
shoot1 = False

life_show2 = Actor("life_show2.png", [1150, 50])
shoot2 = False
#}

win_1 = Actor("win_1.png", [3000, 360])
win_2 = Actor("win_2.png", [3000, 360])


ninja1 = Actor("角色5.png", [200, 460]) 
ninja2 = Actor("角色6.png", [1080, 460]) 


dart1 = Actor("武器2.png", [1500, 300])
dart2 = Actor("武器6.png", [1500, 300])

life1 = 20
life2 = 20

def draw():
    bg.draw()

    ninja1.draw()
    ninja2.draw()
    dart1.draw()
    dart2.draw()
    
    life_show1.draw()
    life_show2.draw()
    screen.draw.text(str(life1), [120, 32], color='white', fontsize=35,fontname="ziti.ttf")
    screen.draw.text(str(life2), [1120, 32], color='white', fontsize=35,fontname="ziti.ttf")
    win_1.draw()
    win_2.draw()

def update():
    global jump1, jump_speed1, jump2, jump_speed2, shoot1, shoot2, life1, life2
    #ninja1的跳跃逻辑
    #{
    if keyboard.w == True:
        jump1 = True


    if jump1 == True:
        ninja1.y = ninja1.y - jump_speed1
        jump_speed1 = jump_speed1 - 0.28

        if ninja1.bottom > 560:
            ninja1.bottom = 560
            jump1 = False  
            jump_speed1 = 12 

    
    if keyboard.a == True:
        ninja1.x = ninja1.x - 6
    elif keyboard.d == True:
        ninja1.x = ninja1.x + 6
    #}
   
    dart1.angle = dart1.angle + 8
    dart2.angle = dart2.angle + 8
    
    if keyboard.s == True:
        shoot1 = True
        dart1.x = ninja1.x - 88
        dart1.y = ninja1.y - 15
        sounds.shoot.play()
        
    if shoot1 == True:
       
        dart1.x = dart1.x + 18
 
    if dart1.colliderect(ninja2):
        life2 = life2 - 1
        dart1.left = 2000
        sounds.hit.play()
    
    if life2 == 0 :
        win_1.left = 0
        music.stop()
    # ---------------------------------------------------------------------------------------------------------------#
    #ninja2的跳跃逻辑
    #{
    if keyboard.up == True:
        jump2 = True
    
    if jump2 == True:
        ninja2.y = ninja2.y - jump_speed2
        jump_speed2 = jump_speed2 - 0.28

        if ninja2.bottom > 573:
            ninja2.bottom = 573
            jump2 = False
            jump_speed2 = 12
    
    if keyboard.left == True:
        ninja2.x = ninja2.x - 6
    elif keyboard.right == True:
        ninja2.x = ninja2.x + 6
    #}
    
    #ninja2的飞镖发射以及输赢规则
    if keyboard.down == True:
        sounds.shoot.play()
        shoot2 = True
        dart2.x = ninja2.x + 70
        dart2.y = ninja2.y - 50
    if shoot2 == True:
        dart2.x = dart2.x - 18
        
    if dart2.colliderect(ninja1):
        life1 = life1 - 1
        dart2.right = -1000
        sounds.hit.play()
    if life1 == 0:
        win_2.left = 0
        music.stop()
go()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信息化未来

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值