def cover(): a.title('测试用狐狸程序 v{} with Era.js v{}'.format(version, a.version)) a.page() a.h("测试用狐狸程序 v{}".format(version)) a.t(" withEra.js v{}".format(a.version)) a.t() a.divider() a.t() a.b('开始游戏', a.goto, t.initiate)
def cover(): # 这样,我们就有一个名为 cover 的函数了,刚才也说了,我们通过函数来搭载界面,于是我们接下来准备显示该界面的标题: a.title('Erajs-Tutorial v{} with Era.js v{}'.format(version, a.version)) # 上面调用了 API 中的 title 函数,其作用是更改前端窗口的标题文字,至于为什么放在 cover 函数里呢? # 其实只要 init 了之后,放在哪里都可以。放在这里只是防止可能会有其它的一些会导致标题修改的界面出现。 # 一般来说,上文中的 title 函数只需要调用一次就可以了,更普遍的情况是,代表界面的函数的第一行,就是调用下列函数: a.page() # 这是 API 中的 page 函数。其作用是新建一个空页,以后新建的所有显示元素都将在此空页中摆放。直到另一个新页面生成。 # 接下来就是显示页面标题: a.h('Erajs-Tutorial v{}'.format(version)) # 上面调用了 API 中的 h(head) 函数,是用来显示页面标题的(其实就是字号比较大的文字啦!),其用法为: # a.h(text) a.t() # 适当的换行会让您的界面更加美观 # 再接下来就是显示一行普通文本: a.t('with Era.js v{} aka{}'.format(a.version, a.aka)) # 这是 API 中的 t(text) 函数。是用来显示普通文本的,其用法为: # a.t(text='', wait=False) # 当 text=='' 时,换行; # 当 wait==True 时,进入等待模式,文字会显示到这里就不再触发下一个语句, # 直到玩家点击鼠标左键(下一句)或是点击鼠标右键(略过全部) # 显示完标题之后,我们不希望将后续内容继续放在标题后边,于是选择换行: a.t() # 换两行也是可以的: a.t() # 接下来,我们希望显示一些按钮,来将玩家引向其他界面: # 再调用之前,我们先来看一下按钮函数是怎么使用的: # a.b(text, func, *arg, **kw) # 其中,text 就是你想显示在按钮上面的文字啦 # func 就是该按钮在点击时会触发的函数 # 还有几个隐藏的参数: # disabled 当该参数为真时,按钮变为不可用的状态 # popup 鼠标指针移动到按钮上面时,将会弹出的文字 # color 按钮颜色,值只能为:red,orange,yellow,olive,green,teal,blue,violet,purple,pink,brown,grey,black。 a.b('页面逻辑教程', a.goto, ui_gui_logic) # 上面这个按钮函数,我们调用了 API 中的 goto 函数,并且将一个新页面的函数作为参数传给了它, # 这意味着当玩家点击这个按钮时,a.goto(ui_gui_logic) 语句将会被执行。 a.t() # 换行(换行不只是可以给文字用哦!按钮、评级、进度条等等都可以用的哦!) a.b('控件使用教程', a.goto, ui_all_components) a.t() # 换行 a.b('网格排版教程', a.goto, ui_grid) a.t() # 换行 a.b('游戏数据教程', a.goto, ui_data) a.t() # 换行 a.b('引擎模块/游戏脚本(Scripts)/DLC/MOD 教程', a.goto, ui_script) a.t() # 换行 a.b('退出引擎示例程序', a.exit) # 正确的退出程序的方式
def cover(): a.title('EraDemo') a.dat()['123'] = 1 print(a.dat()) a.page() a.mode('grid', 1) a.h('EraDemo') a.t() a.t() a.b('新的游戏', a.goto, new_game) a.t() a.t() a.b('继续游戏') a.t() a.t() a.b('游戏设置') a.t() a.t() a.b('退出游戏')
# coding:utf-8 import erajs.api as a def start_new_game(): a.page() a.h('玩家角色创建方式') a.t() a.t() a.b('使用默认主角', e.goto, default_person) def default_person(): a.page() a.h('默认玩家角色') a.t() a.t() if __name__ == "__main__": a.init() a.title('EraLife') a.h('EraLife') a.t() a.t() a.b('新建游戏', a.goto, start_new_game)
def cover(): # 函数的定义十分简单,一目了然,我就不赘述了。丢一个参考链接吧: # 参见:[定义函数](https://docs.python.org/zh-cn/3/tutorial/controlflow.html#defining-functions) # 函数定义好后,就能够被引用了!下面我们来往里面填充内容吧! a.title('Dev Guide with Era.js v{}'.format(a.version)) # 首先,这是名为title的API,它的作用也特别直白:设置游戏窗口标题。 # 标题就是括号里面的内容,但为什么会使用format函数呢?是因为我们要往字符串中塞入一个代表版本的变量。 # 参见:[字符串函数](https://docs.python.org/zh-cn/3/library/stdtypes.html#str.format) # 参见:[格式字符串语法](https://docs.python.org/zh-cn/3/library/string.html#formatstrings) # 现在,我们新建一个页面,将原来的单按钮顶下去! a.page() # 这是名为page的API,作用是新建一个页面,之后的所有控件都在新的页面中生成。 # 引擎只会显示最新的一个页面,旧的页面会被模糊掉,但不会模糊得十分彻底,而是能够让人勉强看清,以免玩家错过关键信息。 # 接下来就轮到调整页面版式了! # 在默认情况下,页面中的内容都是左对齐的,但这种排布方式不一定都美观,因此我们在这里改变一个排版方式: a.mode('grid', 1) # 这是名为mode的API负责改变页面排版方式。 # 在这里,我们将排版方式改为了“grid”(网格),并且给了他一个参数“1”。 # 则代表我们将排版模式变成了一个一列网格。 # 而且网格有一个比较重要的特点,就是在网格中的对齐方式都是居中对齐 # 这样,我们通过生成一个一列网格来实现了每行居中的功能。 # 现在,让我们往网格里面装东西吧! a.t() # 噫?这是装了个什么东西? # 这就是传说中的最常用、最有用、最好用的控件——文本控件! # 而如果我们不往里面装文本的话(比如现在这个),会发生什么? # 答案是换行(换档)! # 什么意思呢?比如如果我们的排版模式是`line`,那么执行这个语句,就相当于回车键, # 后续的内容都会在下一行进行显示。 # 而如果我们的排版模式是`grid`,这里我们以三列网格为例,执行这个语句,我们的光标就会从第一行第一个单元格,跳转到第二个单元格。 # 而如果我们的光标本来就在第一行的第三个单元格,那么执行之后就会跳转到第二行的第一个单元格。 # 而在这里,我们在一列网格中使用,作用就是从第一行第一个单元格,跳转到第二行第一个单元格,也就意味着换了一行而已。 # 都是为了美观呀!美观! # 好了,终于可以开始装东西了,来! a.h('Era.js 开发向导') # 这是标题,用法很简单就不赘述了,我们换行 a.t() # 再显示一行文字。 a.t('Version: {}'.format(a.version)) # 这里语法与title一样,都是进行了字符串格式化。没有什么特别值得说的东西。 # 接下来,我们进行几次换行 for _ in range(4): a.t() # 一行行换行毕竟太麻烦,这里我们使用循环进行5次换行。再生成控件的话,就会在比较靠下的地方了。 a.b(' 页面逻辑教程 ', a.goto, ui_logic) a.t() a.t() a.b(' 控件教程 ', a.goto, ui_widgets) a.t() a.t() a.b(' 排版教程 ', a.goto, ui_compose) a.t() a.t() a.b(' 数据管理教程 ', a.goto, ui_data) a.t() a.t() a.b(' 代码组织教程 ', a.goto, ui_code) a.t() a.t() a.b(' 模组教程 ', a.goto, ui_mod) a.t() a.t() a.b(' 退出教程 ', a.msg, '右上角嘛~ 真是的!') a.t()
def save_game(): a.page() a.h('保存游戏') a.t() print(a.data['db']) a.show_save_to_save() a.b('返回', a.back) def quit_game(): pass def load_game(): a.page() a.h('读取游戏') a.t() a.show_save_to_load(loop) a.b('返回', a.back) a.init() a.title('EraPet') a.h('EraPet') a.t() a.t() a.b('开始饲养', a.goto, start_new_game) a.t() a.b('继续饲养', a.goto, load_game)