python创意迷宫游戏二维码的梦

"""二维码的梦.py
   操作一个二维码图片闯关找到扫描枪的小游戏。
"""
from square import *

def init_audio():
    fail_sound , success_sound = None,None
    try:
        import pygame
        pygame.mixer.init()
    except:
        print("pygame初始化不成功,请用pip install pygame --user重新安装pygame")
        
    if "pygame" in dir():   #如果 pygame标识符在全局名字空间列表中
        try:
            pygame.mixer.music.load("audios/TheAvengers.wav")
            pygame.mixer.music.play(-1,0)
        except:
            print("背景音乐播放不成功!")
        try:
            fail_sound = pygame.mixer.Sound("audios/Fail.wav")
        except:
            print("加载失败音效不成功!请检测aiduos/Fail.wav是否存在.")
        try:
            success_sound = pygame.mixer.Sound("audios/success.wav")
        except:
            print("加载成功音效不成功!请检测audios/success.wav是否存在.")
    return fail_sound,success_sound

def init_screen():
    """初始化屏幕"""
    screen = Screen()              #新建屏幕对象
    screen.delay(0)                #延时
    screen.setup(500,500)          #屏幕大小
    screen.title(game_name)        #标题
    screen.addshape(qrcode_image)  #增加二维码图像,这里引用的是全局变量
    screen.addshape(gun_image)     #扫描枪gif图
    screen.addshape(cry_image)     #哭脸gif图
    screen.bgpic(cover_image)      #封面png图
    
    return screen

def produce_scanner():
    """产生scanner对象"""
    scanner = Turtle(visible = False)
    scanner.shape(gun_image)      #形状为扫描枪
    scanner.penup()               #抬笔
    scanner.goto(0,150)           #坐标定位
    return scanner
    

def scanner_alt_status():
    """每隔10秒秒通二维码的关卡设定隐藏/显示状态""" 
    pass
        
def check_condition():
    """到第四关时如果二维码和扫描枪距离小于30并且是可见的,那么表示闯关成功"""
    condition = qrcode.distance(scanner)<30 and scanner.isvisible() 
    if condition == True :         #碰到了扫码枪则隐藏
        try:success_sound.play()
        except:pass
        scanner.hideturtle()
        qrcode.hideturtle()
        qrcode.dead = True
        screen.clear()
        screen.bgpic("images/二维码.png")
        screen.title("请帮忙实现二维码的梦,拿出手机扫一扫!")
        return
    "如果qrcode闯入禁区,那么显示哭脸"
    if qrcode.dead == True:
        try:fail_sound.play()
        except:pass
        screen.clear()
        screen.bgcolor("black")
        screen.title(game_name)
        Turtle(shape=cry_image)
        return
    screen.ontimer(check_condition,10)
  
def start_game():
    """生成二维码对象和扫描枪对象"""
    pass  
    
if __name__ == "__main__":

    game_name = "二维码的梦,作者:李兴球"
    fail_sound,success_sound = init_audio()
    qrcode,scanner = None,None
    qrcode_image = "images/二维码.gif"
    gun_image   = "images/gun.gif"
    cry_image = "images/哭脸.gif"
    cover_image = "images/封面.png"    
  
    bglist = ['images/level1.png','images/level2.png','images/level3.png','images/level4.png']
    bump_area_condition = []                           #禁区的x和y坐标条件列表
    bump_area_condition.append("y >50 or y < -50 or x < - 200")
    bump_area_condition.append("y >50 or x >50 or  ( x<-50 and y<-50) ")
    bump_area_condition.append(" (x<-50 and y>50) or x > 50 or y <-50")
    bump_area_condition.append("y < -50 or x < -50 or y >200 or (x>50 and y>50)")
    backlist = ["False","x<-250","y>250","x>250"]      #第一关无法回到上一关,所以第一个值为False
    forwardlist = ["x>250","y<-250","x<-250","False"]  #最后一关到底了,所以最后的值为False

    screen = init_screen()
    screen.onkeypress(start_game,"Return")
    screen.listen()
    screen.mainloop()

 

python创意迷宫游戏二维码的梦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李兴球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值