Python老鼠过街趣味小游戏

编程入门 行业动态 更新时间:2024-10-28 09:24:17

Python老鼠过街趣味<a href=https://www.elefans.com/category/jswz/34/1769974.html style=小游戏"/>

Python老鼠过街趣味小游戏

"""这是一个多人小游戏,通过按方向箭头操作小老鼠闯过街道,作者:李兴球,2018/10/1日."""from turtle import *
from random import  randint,choiceclass Bus(Turtle):"""小汽车类,参数说明:images:图形列表,每辆小汽车实例的造型是随机选择的一张图片ycor:初始y坐标,它的x坐标是随机的一个值mouses:老鼠列表,每辆小汽车会检测有没有碰到每只老鼠"""def __init__(self,images,ycor,mouses):Turtle.__init__(self,visible=False)self.up()                    # 抬笔self.images = images         # 造型列表self.shape(choice(images))   # 随机选择一个,做为初始造型self.sety(ycor)              # 初始y坐标self.setx(-self.screen.window_width()//2 - randint(100,300))self.mouses= mouses        self.st()                    # 显示self.move()                  # 不断地移动def move(self):"""本方法让小汽车不断地从左到右移动"""self.setx(self.xcor() + 5)x = self.xcor()y = self.ycor()self.left =  x - 35   # 小汽车的宽度和高度约为70 60self.right = x + 35self.top = y + 30self.bottom = y - 30if self.left  > self.screen.window_width()//2:self.ht()        # 隐藏self.shape(choice(self.images))     # 换个造型,好像另一辆车一样x = -self.screen.window_width()//2 - randint(100,300)self.setx(x)self.st()        # 显示self.pressmouse()      # 是否压到了老鼠self.screen.ontimer(self.move,10)def pressmouse(self):"""压到老鼠了判断,判断汽车和老鼠的两个矩形是否重叠,使用的是逆向思维法"""passclass Mouse(Turtle):"""老鼠类,参数说明:images: 造型列表keys:按键列表,上键和下键laugh:笑声bell:钟声"""def __init__(self,images,keys,laugh=None,bell=None):Turtle.__init__(self,shape='blank',visible=False)self.up()                 # 抬笔self.dead = False         # 描述老鼠是否死亡的逻辑变量self.index= 0             # 造型索引号self.images = images      # 造型列表        self.upkey = keys[0]      # 向上按键self.downkey = keys[1]    # 向下按键self.laugh = laugh        # 大笑声self.bell =bell           # 过关后的声self.alt_image()          # 换造型self.register_keys()      # 注册按键self.st()                 # 显示出来self.wait_success()       # 等待过关def register_keys(self):"""注册按键""" passdef cancle_keys(self):"""取消注册的按键"""passdef alt_image(self):""切换造型"""passdef wait_success(self):"""每隔0.1秒判断是否成功穿越"""if self.ycor() > self.screen.window_height()//2-80 and self.isvisible():try:self.bell.play()        #播放钟声,表示成功过街except:passself.stamp()                #盖图章self.cancle_keys()          #取消按键绑定self.ht()                   #隐藏else:self.screen.ontimer(self.wait_success,100)def init_screen(width,height,title,bgimage):"""初始化屏幕"""screen = Screen()    screen.setup(width,height )screen.title(title)screen.bgpic(bgimage)screen.delay(0)return screendef register_gif():"""注册汽车与老鼠gif图案到形状列表"""busimages = ["小汽车" + str(i) + ".gif" for i in range(4)][screen.addshape(image) for image in busimages]             #注册所有小汽车gif图到形状列表mouseimages = ["mouse0.gif","mouse1.gif","mouse2.gif"][screen.addshape(image) for image in mouseimages]           #注册所有老鼠gif图到形状列表return busimages,mouseimagesdef init_audio():"""播放背景音乐,新建音频实例对象"""pygame_normal = False                                 #描述pygame是否正常的逻辑变量try:import pygame pygame.mixer.init()pygame_normal = Trueexcept:passif pygame_normal:        pygame.mixer.music.load("欢快女唱电音歌曲超嗨.wav")pygame.mixer.music.play(-1,0)haha = pygame.mixer.Sound("Laugh-male1.wav")        #哈哈声bell = pygame.mixer.Sound("BellToll.wav")           #钟声cricket = pygame.mixer.Sound("Cricket.wav")         #吱声else:haha = None ; bell=None ; cricket=Nonereturn haha,bell,cricketdef make_mouses():"""实例化老鼠"""mouse_a = Mouse(mouseimages,("w","s"),haha,bell)     #实例化左边老鼠,用w,s键移动老鼠mouse_a.setx(-50)mouse_a.sety(-height//2 + 50)mouse_b = Mouse(mouseimages,("Up","Down"),haha,bell) #实例化右边老鼠,用上,下方向箭头移动老鼠mouse_b.setx(+50)mouse_b.sety(-height//2 + 50)ms = [mouse_a,mouse_b]return msif __name__=="__main__":width,height = 800,600                                     #屏幕宽高定义screen = init_screen(width,height,"老鼠过街_作者:李兴球","街道800x600.gif")busimages,mouseimages  =  register_gif()                   #注册汽车与老鼠gif图形haha,bell,cricket = init_audio()                           #初始化音频ms = make_mouses()                                         #生成两只老鼠[ Bus(busimages,ycor,ms) for ycor in (170,70,-80,-170)]    #生成4辆在不同y坐标的小车cricket.play()             #播放下老鼠的吱吱声screen.listen()            #监听按键     screen.mainloop()          #主循环

 

更多推荐

Python老鼠过街趣味小游戏

本文发布于:2024-03-13 08:59:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1733622.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小游戏   趣味   老鼠过街   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!