python编写猜数游戏程序,python编程实现猜数游戏
本文经【微信公众号:萝卜杂烩,ID:luobodazahui】微信公众号授权转载,必要时联系原文作者
我最近在学习用计算机编程语言完成一个小游戏。使用的是Pygame和PyQt5等。之前,我已经在Pygame上完成了一个小的Mp3工具。最近又学习了PyQt5,根据网上前人的代码,整理了拍鼹鼠的小游戏。今天也和大家分享,一起学习!
游戏画面
首先进行游戏画面的排版,
classtopwindow (q构件):def_init_ ) self,parent=None ) :super(._ init _ _(parent)self。病毒数量=自身。设置窗口标题(灭鼠小游戏)自我。setwitilill ay。setfixedsize)900,600)显示。显示)系统。退出))sys。出口
对于PyQt5,必须创建全局应用程序对象。此对象的参数是命令行参数列表,可以使用setFixedSize设置游戏帧的大小。我们还设置了类变量病毒数量作为老鼠的个数测量
然后做鼠类,排列相关的地洞
类病毒(q按钮):def _ init _)self,parent=None ) : super).__init_)父级(selent 120)
再做25个孔
对于范围内的I(5(25):exec(self。病毒.格式))对于iinrange)3360对于jinrange)3360
此时,我们的程序的效果如下
工具栏设置
在此添加游戏页面所需的工具栏,如开始按钮、游戏点框等
#右固定窗口中的控件自我。设置布局=qgridlayout(#栅格布局自我设置构件=q构件) )自我设置构件。设置构件右固定窗口中的控件350 ) self.image layout.add构件(自我设置构件,5,1,5)自我设置构件。设置布局)
然后创建相关按钮和输入框
自我。开始按钮=Qt部件。q按钮(text=游戏开始,点击了=自己。handle _ play _ button)自身。startpp 40)自我。开始按钮。点击了。连接(自我。游戏开始)#绑定信号自我。文本浏览器=qtext浏览器)自身。文本浏览器自身。文本浏览器。setfixedsize(70,40)self。秒杀浏览器=qtext浏览器)(自己。秒杀浏览器。settext))病毒消灭数量:0 50)自我。escape browser=qtext browser 33600))自己。escape浏览器。setfixedsser 50)self。剩余时间text=qtext浏览器(self。保留时间文本。settext(剩余
这里,对于开始按钮,采用了与其他按钮不同的处理方式,如果程序正在游戏中,该按钮将变为"游戏结束",所以来看看手柄_播放_按钮
@ Qt核心。pyqt槽(de f handle _ play _ button)self):BTN=self。发件人)ifbtnisnotnone:text=BTN。如果让我开始,就发短信。)其他:BTN。settext)(游戏开始)(self.gameover)。
对于使用的两个函数:游戏开始和游戏结束,代码如下
defgamestart(self):score=self。文本浏览器。settext(“游戏中")自拍。开始(30000 ) ) 30秒一次自我。病毒:自我。计时器。停止)自我。病毒计时器。停))自我。文字自我。mouse num=foriinrange(25):exec(self。病毒)
最后在游戏页面的右侧添加按钮等
自我设置布局。添加构件(自我启动按钮,)自我设置布局。添加构件)self.textbrowser,1,)self.settings layout.add构件(自杀浏览器,2,)self.settings layout.add构件)self.escapebrowser,3 ) self.settings layout.add构件(self.remain timetext,4,)# self.settings layout.add构件)self.end push butttget
我们的游戏页面有以下样式
游戏点
既然是游戏,当然就需要积分功能。鼹鼠游戏的时候,我们点击鼠标的时候,是破坏鼹鼠的时候
efmousepresevent(self,event):self。set cursor)q cursor)qpix map(r sucai/down。png’))自我。向上咪咪
然后进行游戏得分的逻辑
def kill(self):尝试:如果self。flag==1:self。设置样式表( q button { border-image 3360 URL)sucai/()
这样,也可以进行基本的游戏点!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。