def ui_all_components(): def button_result(): a.page() a.h('作为一个按钮,我被按了。') a.t() a.b('返回', a.back) def rate_result(new_rate): print('当前评分为{}分。'.format(new_rate)) def radio_result(new_ratio): print('现在选中了“{}”。'.format(new_ratio)) def input_result(new_input): print('输入框中的值为:“{}”。'.format(new_input)) a.page() # 新建一个页面 a.h('控件一览(包括作为标题的我自己)') a.t() a.t('【我是几个文字】') a.t('【我跟在左边文字后面】') a.t() # 换行 a.t('【我被换行了……】') a.t() # 再换行 a.t('【当你看见我时,你需要点鼠标左键或右键】', True) a.t() # 再换行 a.t('【当你看见我时,你还是需要点鼠标左键或右键】', True) a.t() # 再换行 a.b('我是一个红按钮', a.goto, button_result, color='red') a.b('我是一个不能按的红按钮', a.goto, button_result, color='red', disabled=True) a.b('快拿鼠标戳我!', a.goto, button_result, popup='被你戳到了,好爽~') a.t() a.divider() # 我是一个分割线 a.t() a.t('作为进度条,我当前值为50,总共100,在界面上显示为 200px 长:') a.progress(50, 100, 200) a.t() a.t('如果给这个游戏引擎评分,5分满分,我给4分:') a.rate(4, 5) a.t() a.t('我是一个可以点的评分哦~点击之后请在后端控制台查看效果~(对着当前评分再点击一次可以取消评分哦~(等价于评0分)):') a.rate(2, 5, rate_result, False) a.t() a.t('我是一个单选,目前默认选中第二项(索引为1)修改之后请在后端控制台查看效果:') a.radio(['一', '二', '三'], 1, radio_result) a.t() a.t('我是输入框,修改之后请在后端控制台查看效果:') a.input(input_result) a.t() a.t('以上,就是目前支持的全部控件及用法啦~') a.t() a.t('如果您需要新增,请跟作者联系哦~') a.t() a.b('返回', a.back)
def ui_data(): def change_rate(new_rate): a.data['db']['rate'] = new_rate a.page() # 新建一个页面 a.h('游戏数据教程') a.t() a.t('游戏的静态数据都保存在【data/】目录中,只要放进去了,且格式匹配,就可以在游戏开始后直接调用。如:') a.t(a.data['data.姓名库']['外文']['男名'][0]) a.t('←这里请翻阅代码') a.t() a.t('支持的格式为json,csv,ini,inf,cfg,config等。而且在加载的时候后都已经被自动转换为了Dict等方便的格式。') a.t() a.t('【a.data是游戏引擎的数据核心,类型为Dict。里面定义的变量都可以被全局调用,但不会被保存】') a.t() a.divider() a.t() a.t('【接下来介绍几个特殊的Key】') a.t() a.t('【a.data["data.*"]】存放着【data/】目录下所有的静态数据;') a.t() a.t('【a.data["config.*"]】存放着【config/】目录下所有的设置;') a.t() a.t('【以上两种KEY使用点语法来对具体文件进行调用,如【data/姓名库.json】文件中的内容保存在【a.data["data.姓名库"]】中' ) a.t() a.divider() a.t() a.t('【a.data["db"]】中存放着可以被保存和读取的数据。(其他KEY中的数据都不会被保存)') a.t() a.t('演示(请修改,保存,再修改,加载。看数值是否被保存了。):') a.rate(a.data['db']['rate'], 5, change_rate, False) a.t() a.divider() a.t() a.t('【a.data["class"]】保存着各种Class,属于预留。大家暂时可以忽略。') a.t() a.t('【a.data["api"]】保存着各种API,大家可以在这里加入自定义的API,然后进行全局调用(一般用于引擎插件/Script/DLC/Mod中)。' ) a.t() a.t('【entity】保存着各种Class的实例,属于预留。大家暂时可以忽略。') a.t() a.divider() a.t() a.b('保存', a.goto, save_game) a.b('加载', a.goto, load_game) a.b('返回', a.back)
def ui_widgets(): def button_result(): a.msg('按钮已按下') def rate_result(new_rate): a.msg('您的评分为{}分。'.format(new_rate)) def radio_result(new_ratio): a.msg('现在选中的是第{}位的“{}”。'.format( new_ratio['index'], new_ratio['value'] )) def check_result(new_check): a.msg('现在复选框的值为:{}'.format(new_check)) def input_result(new_input): a.msg('输入框中的文本为:{}'.format(new_input)) def dropdown_result(new_dropdown): a.msg('下拉菜单中的值为第{}位的“{}”。'.format( new_dropdown['index'], new_dropdown['value'] )) a.page() a.h('控件一览', 1, {'color': '#eee'}) a.mode('line') a.t('【我是几个文字】') a.t('【我跟在左边文字后面】') a.t() # 换行 a.t('【我被换行了……】') a.t('而我有色彩', style={'color': '#f00', 'background-color': '#0f0'}) a.t() # 再换行 a.t('【当你看见我时,你需要点鼠标左键或右键】', True) a.t() # 再换行 a.t('【当你看见我时,你还是需要点鼠标左键或右键】', True) a.t() # 再换行 a.b('我是一个红按钮', button_result, style={'background-color': '#f00'}) a.b('我是一个不能按的按钮', button_result, disabled=True) a.b('快拿鼠标指着我!', button_result, popup='被你戳到了,好爽~') a.divider('我是显而易见的分割线') a.t('作为进度条,我当前值为50,总共100,在界面上显示为 100px 长:') a.progress(50, 100, [{'width': '100px'}, {}]) a.t() a.t('如果给这个游戏引擎评分,5分满分,我目前给4分:') a.rate(4, 5) a.t() a.t('我是一个可以点的评分哦~点击之后请在后端控制台查看效果~(对着当前评分再点击一次可以取消评分哦~(等价于评0分)):') a.rate(2, 5, rate_result) a.t() a.t('我是一个单选,目前默认选中第二项(索引为1)修改之后请在后端控制台查看效果:') a.radio(['一', '二', '三'], radio_result, 1) a.t() a.t('我是一个复选框,目前默认已选中,修改之后请在后端控制台查看效果:') a.check('我是一个复选框哦!', check_result, True) a.t() a.t('我是输入框,修改之后请在后端控制台查看效果:') a.input(input_result, '我是默认值哦~') a.t() a.t('多行文本输入框:TODO') a.t() a.t('我是一个下拉菜单哦!(下拉选择项目并在后端查看效果):') a.dropdown(['甲', '乙', '丙'], dropdown_result, 1) a.t() a.t('多选下拉菜单:TODO') a.t() a.t('以上,就是目前支持的全部控件及用法啦~') a.t() a.t('如果您需要新增,请跟作者联系哦~') a.t() a.b('返回', a.back)
def ui_all_components(): def button_result(): a.page() a.h('作为一个按钮,我被按了。') a.t() a.b('返回', a.back) def rate_result(new_rate): print('当前评分为{}分。'.format(new_rate)) def radio_result(new_ratio): print('现在选中了“{}”。'.format(new_ratio)) def check_result(new_check): print('现在复选框的值为:{}'.format(new_check)) def input_result(new_input): print('输入框中的值为:') print('{}'.format(new_input)) def dropdown_result(new_dropdown): print('下拉菜单中的值为:“{}”。'.format(new_dropdown)) def multi_dropdown_result(multi_dropdown): print('下拉菜单中的值为:“{}”。'.format(','.join(multi_dropdown))) a.page() # 新建一个页面 a.h('控件一览(包括作为标题的我自己)', color='#f00', bcolor='#ff0') a.t() a.t('【我是几个文字】') a.t('【我跟在左边文字后面】') a.t() # 换行 a.t('【我被换行了……】') a.t('而我有色彩', color='#f00', bcolor='#ff0') a.t() # 再换行 a.t('【当你看见我时,你需要点鼠标左键或右键】', True) a.t() # 再换行 a.t('【当你看见我时,你还是需要点鼠标左键或右键】', True) a.t() # 再换行 a.b('我是一个红按钮', a.goto, button_result, color='red') a.b('我是一个不能按的红按钮', a.goto, button_result, color='red', disabled=True) a.b('快拿鼠标戳我!', a.goto, button_result, popup='被你戳到了,好爽~') a.b('我是振动器!', a.shake, 100) a.t() a.divider() # 我是一个分割线 a.t() a.t('作为进度条,我当前值为50,总共100,在界面上显示为 200px 长:') a.progress(50, 100, 200) a.t() a.t('如果给这个游戏引擎评分,5分满分,我给4分:') a.rate(4, 5) a.t() a.t('我是一个可以点的评分哦~点击之后请在后端控制台查看效果~(对着当前评分再点击一次可以取消评分哦~(等价于评0分)):') a.rate(2, 5, rate_result, False) a.t() a.t('我是一个单选,目前默认选中第二项(索引为1)修改之后请在后端控制台查看效果:') a.radio(['一', '二', '三'], radio_result, 2) a.t() a.t('我是一个复选框,目前默认已选中,修改之后请在后端控制台查看效果:') a.check('我是一个复选框哦!', check_result, True) a.t() a.t('我是输入框,修改之后请在后端控制台查看效果:') a.input(input_result, '我是默认值哦~') a.t() a.t('我是多行文本输入框,修改之后请在后端控制台查看效果:') a.t() a.input(input_result, '我是默认值哦~\n我还会换行~', True) a.t() a.t('我是一个下拉菜单哦!(下拉选择项目并在后端查看效果):') a.dropdown(['甲', '乙', '丙'], dropdown_result, default='丙') a.t() a.t('我是一个多选下拉菜单哦!(下拉选择多个项目并在后端查看效果):') a.dropdown(['甲', '乙', '丙', '丁', '戊'], multi_dropdown_result, multiple=True, default='戊') a.t() a.t('以上,就是目前支持的全部控件及用法啦~') a.t() a.t('如果您需要新增,请跟作者联系哦~') a.t() a.b('返回', a.back)