Python简易游戏菜单教程和源码


一个完整的游戏在它启动的时候,通常设计者还会设计一个电子菜单进行选择。最简单的情况是有一个开始游戏按钮,一个帮助说明按钮,一个退出游戏按钮。每个按钮都有共同的行为,比如能接受单击。当鼠标指针碰到按钮时会换造型。所以在按钮类的设计中就应该给它添加了两个image。在下面的例子中,我们把一个叫image0,另一个叫image1。这两个image放在一个元组中。当鼠标指针在按钮上或移开时,通过设定索引号为0或为1让按钮呈现不同的外观。这个检测是在按钮的update方法中完成的。通过矩形对象的collidepoint方法从而检测鼠标指针的坐标是否在按钮的矩形范围内。

为了能共同刷新及渲染每一个按钮,把它们装到一个容器组中是必然的。在下面的程序中通过pygame.sprite.Group新建了一个名叫menu的角色组。这样,把三个按钮都添加到了menu这个组中,在while循环中就能通过调用menu.update()对所有按钮进行更新,更新后通过调用menu.draw(screen)把所有按钮画在screen上了。

每个按钮都有一个clicked属性。当鼠标指针不在按钮范围内,它的值是False。当鼠标指针在按钮范围内并且单击了时,它的值变成了True。为什么要设计这个属性呢?它能向“外界”表明自己的状态。在同一个时期,只会有一个按钮被选中。这个按钮被单击了应该发生什么行为呢?其实,我们可以给在按钮初始化的时候传递一个回调函数,这样直接执行它的这个回调函数就行了。不过,在本例中,并没有这样做,而只是简单的在while循环中进行判断。如果翻译成汉语大概就是下面的意思:如果帮助按钮被单击了,则在屏幕上渲染帮助信息。如果结束按钮被单击了,则把running设置为False。如果启动游戏的按钮被单击了,那么不仅仅把running设置为False,还会把一个名为start_name的变量的值设为True。这个名为start_name是用来标记是否进入游戏的逻辑变量,以下是电子菜单的代码:

电子菜单制作,下面的程序设计了Button类,菜单则由一个组完成。每个实例化的按钮有两个造型,以便当碰到鼠标指针时会切换造型。

如需要查看完整源代码,请扫码付款:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿_pygame » Python简易游戏菜单教程和源码
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页