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

    xiaoxiao2022-06-24  187

    """二维码的梦.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()

     


    最新回复(0)