简介
通常进入游戏前都会有一个游戏菜单,选择游戏难度、查看帮助、选择模式等等,但是pygame并没有提供这个功能,于是只能凭借互联网的智慧和EasyX的经验:用pygame“绘制”出一个游戏菜单。
菜单特征
比如贪吃蛇的菜单:查看游戏按键、输入用户名、选择难度、继续游戏、退出游戏等等
- 响应式:鼠标选中或者键盘选择有高亮处理
实现起来还是比较简单的,放几张图,监听鼠标和键盘事件,然后把选中项的图切换为处理好之后高光处理的图片,如果是文字就加粗变色。实现起来并不困难,就是会使代码量多了一丢丢。
但这样也会有缺点:不能输入文字
pygame_menu
人生苦短,我选pygame_menu,只需要短短几行代码便可以实现按钮、输入、高亮等等Nb的菜单操作
优点
界面优美,功能强大
缺点
不能输入中文,解决办法面向互联网吧。
效果
代码
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
@Desc : pygame菜单demo
'''
import pygame
import pygame_menu
pygame.init()
surface = pygame.display.set_mode((600, 400))
def set_difficulty(value, difficulty):
pass
def start_the_game():
pass
menu = pygame_menu.Menu(300,
400,
'Welcome',
theme=pygame_menu.themes.THEME_BLUE)
menu.add_text_input('Name :', default='John Doe')
menu.add_selector('Difficulty :', [('Hard', 1), ('Easy', 2)],
onchange=set_difficulty)
menu.add_button('Play', start_the_game)
menu.add_button('Quit', pygame_menu.events.EXIT)
menu.mainloop(surface)
致谢
感谢pygame_menu的17位开发人员
ppizarror/pygame-menu