Exemple #1
0
 def page3():
     a.page()  # 新建一个页面
     a.h('第三页')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page2)
     a.b('回到主界面', a.back, num=2)
Exemple #2
0
def title():
    a.page()
    a.mode('grid', 1)
    a.h('主页面')
    a.t()
    a.b('新的旅程', a.goto, creat_new_game.select_succubus)
    a.t()
 def ui_support_file_format():
     a.page()
     a.h('支持的数据文件格式列表')
     a.t()
     a.t()
     a.t('配置文件:*.inf, *.ini, *.cfg, *.config')
     a.t()
     a.t('配置文件的基本格式均为【变量名】=【数据】的格式,适用于存储简单的、易于玩家修改的配置数据。')
     a.t()
     a.t('表格文件:*.csv')
     a.t()
     a.t('CSV文件可以被常见的表格程序打开,但其本身不支持任何排版,若需要储存大量二维数据可以考虑这个方法。十分利于开发者进行编辑修改。')
     a.t()
     a.t('JSON文件:*.json')
     a.t()
     a.t('JSON文件易于储存结构化的数据,系统读写速度非常快,但面向开发者的可读性要稍差一点。')
     a.t()
     a.t('YAML文件:*.yaml, *.yml')
     a.t()
     a.t('YAML文件和JSON文件类似,适用于储存、输入结构化的数据,系统读写速度没有JSON快,但面向开发者的可读性特别高,推荐使用。')
     a.t()
     a.t('ZIP文件:*.zip')
     a.t()
     a.t('ZIP文件是常见的容器文件,里面的文件格式均为JSON,能够整合多个数据文件,方便与其他玩家共享数据时使用。')
     a.t()
     a.t('文本文件:*.txt')
     a.t()
     a.t('最常见的文本文件,读取之后的数据结构为列表,每一行就是列表中的一项,用法全看开发者如何打算。')
     a.t()
     a.t('存档文件:*.save, *.sav')
     a.t()
     a.t('Era.js游戏引擎特有的存档文件,没有什么特别的东西需要介绍的。')
     a.t()
     a.t()
     a.b('返回', a.back)
Exemple #4
0
def new_game():
    a.page()
    a.t('“啪”,你从床上掉了下去。', True)
    a.debug('!!!!!!!!!!!!!')
    a.t()
    a.t('“唔~”,好疼。', True)
    a.t()
    a.t('一直睡觉你都不安分,今天也如往常一样,你从床上掉了下来。', True)
    a.t()
    a.t('………………', True)
    a.t()
    a.t('…………', True)
    a.t()
    a.t('……', True)
    a.t()
    a.t('但似乎今天情况有些不同。', True, style={'color': 'red'})
    a.page()
    a.t('“咳咳咳……”', True, style={'shake_duration': 3})
    a.t()
    a.t('“你剧烈地咳嗽起来。”', True)
    a.t()
    a.t('你跌落在地所激起的大量灰尘随着你的呼吸进入你的鼻腔。', True)
    a.t()
    a.t('“怎么回事!咳咳咳……为什么我房间里面会有这么多灰尘!”', True)
    a.t()
    a.t('你挣扎着爬起来,却发现', True)
    a.t()
    a.t('『陌生的天花板』', True)
    a.t()
    a.t('这是哪里?!', True, style={'color': 'red'})
    a.goto(center)
Exemple #5
0
def think():
    a.page()
    a.t('你稍加思索,很快便得出了结论。', True)
    a.t()
    a.t('那椅子上的活物,没有错的话,', True)
    a.t()
    a.t('应该是一位熟睡的')
    a.t('少女', style={'color': 'red'})
    a.t('。', True)
    a.t()
    a.t('因为你触碰到了她的身体,闻到了少女特有的香气。', True)
    a.t()
    a.t('你继续进行着调查,发现自己的推论完全正确。', True)
    a.t()
    a.t('甚至还有更加惊人的发现……', True)
    a.t()
    a.t('这个少女是被绑在了椅子上!', True)
    a.t()
    a.t('而且她的神智似乎也要渐渐恢复了。', True)
    a.t()
    a.t('这时候,你选择……', True)
    a.t()
    a.page()
    a.mode('grid', 1)
    a.t()
    a.t()
    a.t('未完待续……')
    a.t()
    a.t()
    a.b('打群主!', a.goto, bit)
Exemple #6
0
def goon():
    a.page()
    a.t('………………', True)
    a.t()
    a.t('…………', True)
    a.t()
    a.t('……', True)
    a.t()
    a.t('“唔……”', True)
    a.t()
    a.t('少女皱着眉头,艰难地抬起了眼。', True)
    a.t()
    a.t('房间仅剩的那一扇门下泛出的微弱黄光,刚好能让你和少女看见彼此的轮廓。', True)
    a.t()
    a.t('毕竟房间里也没有另一个东西方便你躲藏了。', True)
    a.t()
    a.t('于是很显然地,少女意识到了你的存在。', True)
    a.t()
    a.t('但她')
    a.t('并没有吱声', style={'color': 'red'})
    a.t('。', True)
    a.t()
    a.t('仅仅是看着你(的轮廓)。', True)
    a.t()
    a.t('这时候你……')
    a.t()
    a.t()
    a.b('轻柔礼貌地自我介绍', action, 'polite')
    a.t(' ')
    a.b('直接交谈', action, 'direct')
    a.t(' ')
    a.b('粗♂鲁♂而♂直♂接地交流', action, 'rude')
def select_location():
    #选择出生地
    def change_location(selection):
        # description = a.dat()['location'][location['value']]['description']
        # a.t(description)
        a.tmp()['location_mode'] = selection['index']
        a.repeat()
        pass

    a.page()
    a.mode('grid', 1)
    a.t('何处?')
    a.divider()
    a.mode()
    a.t()
    a.t()
    a.radio(['平原'], change_location, a.tmp()['location_mode'])
    a.t()
    description = a.dat()['location'][a.tmp()['location_mode']]['description']
    a.t(description)
    a.t()
    a.divider()
    a.b('下一步', a.goto, select_inherit)
    a.t()
    a.b('何人?', a.back)
Exemple #8
0
 def page3():
     a.page(color='#00f')  # 新建一个页面
     a.h('第三页(暨页面着色演示)')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page2)
     a.b('回到主界面', a.back, num=2)
def select_ban():
    #选择禁用
    a.page()
    a.mode()
    a.t('敬请期待')
    a.t()
    a.b('困顿', a.goto, select_difficulty)
def select_inherit():
    #选择继承
    a.page()
    a.mode()
    a.t('敬请期待')
    a.t()
    a.b('绝缘', a.goto, select_ban)
def select_difficulty():
    def goto_difficulty(difficulty):
        a.clear()
        #初始化新游戏,考虑之后用一个函数代替,此处先作测试用途
        a.tmp()['day'] = 1
        a.tmp()['money'] = 0
        a.tmp()['s***n'] = 0
        a.tmp()['day_time'] = '日间'
        a.tmp()['prisoner_list'] = []
        a.tmp()['family_list'] = []
        a.tmp()['difficulty'] = difficulty
        show_main()

    #选择难度
    a.page()
    a.mode('grid', 1)
    a.h('前往哪一个世界?')
    a.divider()

    a.mode()
    #此处放置难度世界列表
    a.b('普通', goto_difficulty, 1)
    a.divider()
    a.mode('line', 1)
    a.b('返回', a.back)
Exemple #12
0
def save_game():
    a.page()
    a.h('保存游戏')
    a.t()
    print(a.data['db'])
    a.show_save_to_save()
    a.b('返回', a.back)
Exemple #13
0
def save_game():
    # 保存游戏界面
    a.page()
    a.h('保存游戏')
    a.t()
    a.show_save_to_save()  # 显示当前存档以供保存
    a.b('返回', a.back)
 def ui_call_data():
     a.page()
     a.h('数据调用')
     a.t()
     a.t()
     a.h('调用配置文件', 3)
     a.t()
     a.t('配置文件放在【config/】文件夹中,通过a.cfg()函数进行调用。')
     a.t()
     a.t()
     a.h('调用静态数据文件', 3)
     a.t()
     a.t('数据文件放在【data/】文件夹中,通过a.dat()函数进行调用。')
     a.t()
     a.t()
     a.h('调用可存档数据', 3)
     a.t()
     a.t('可存档数据是指通过a.sav()函数进行增删查改的数据,而“存档文件”可以理解为“可存档数据”的一个“快照”。当我们进行“保存游戏”的操作时,游戏引擎会将“可存档数据”进行全拷贝并自动生成“存档文件”存放在【save/】文件夹中,而当我们读取存档时,游戏引擎读取“存档文件”中的数据并对“可存档数据”进行完全覆盖。')
     a.t()
     a.t('出于非技术原因,我们约定,可存档数据中的数据不包括Python的对象(如函数、类等)。',
         style={'color': 'white'})
     a.t()
     a.t()
     a.h('调用临时数据', 3)
     a.t()
     a.t('“临时数据”是指游戏运行时生成、供全局调用、但无需保存进存档文件的数据。可通过a.tmp()函数进行调用。当全局数据不知道放哪儿时,放这里准没错。')
     a.t()
     a.t()
     a.b('返回', a.back)
 def page3():
     a.page({'background-color': '#636669'})  # 新建一个页面
     a.h('第三页(暨页面着色演示)')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page2)
     a.b('回到主界面', a.back, num=2)
Exemple #16
0
    def ui_grid_3():
        """
        作者: @m.l
        (有改动)
        """
        a.page()
        a.h('三、网格排版【网格】', rank=4)
        a.t()
        a.t('【默认样式】')
        # ---------网格排版模式
        a.mode('grid', 3)
        # 网格排列,一行3列
        a.b('按钮1')
        a.b('按钮2')
        a.t()
        a.b('按钮3')
        a.t()
        a.b('按钮4')
        a.t()
        a.b('按钮5')
        a.t()
        a.b('按钮6')

        a.mode()
        a.t()
        a.t('【线框样式】')
        a.mode('grid', 3, celled=True)
        # celled,带
        a.b('按钮1')
        a.b('按钮2')
        a.t()
        a.b('按钮3')
        a.t()
        a.b('按钮4')
        a.t()
        a.b('按钮5')
        a.t()
        a.b('按钮6')

        a.mode()
        a.t()
        a.t('【紧凑样式】')
        a.mode('grid', 3, compact=True, celled=True)
        a.b('按钮1')
        a.b('按钮2')
        a.t()
        a.b('按钮3')
        a.t()
        a.b('按钮4')
        a.t()
        a.b('按钮5')
        a.t()
        a.b('按钮6')
        a.mode()
        a.t()
        a.divider()
        a.b('上一页', ui_grid_2)
        a.t()
        a.b('返回', a.back)
Exemple #17
0
def initiate():
    a.page()
    a.h('开始游戏')
    a.t()
    a.divider()
    a.b('开始新游戏', a.goto, g_story)
    a.b('读取存档', a.goto, g_load)
    a.b('透出游戏', a.exit)
Exemple #18
0
 def page2():
     a.page(color='#0f0')  # 新建一个页面
     a.h('第二页(暨页面着色演示)')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page1)
     a.b('下一页', change_page, page3)
     a.b('回到主界面', a.back, num=2)
 def page2():
     a.page({'background-color': '#535659'})  # 新建一个页面
     a.h('第二页(暨页面着色演示)')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page1)
     a.b('下一页', change_page, page3)
     a.b('回到主界面', a.back, num=2)
Exemple #20
0
 def page2():
     a.page()  # 新建一个页面
     a.h('第二页')
     a.t()
     a.b('返回', a.back)
     a.b('上一页', change_page, page1)
     a.b('下一页', change_page, page3)
     a.b('回到主界面', a.back, num=2)
Exemple #21
0
def ui_start_new_game_set():
    era.page()

    def start_new_game():
        ui_make_chara('玩家')

    era.data['chara'] = CharacterAdmin()

    era.b('梦境的开端', era.goto, start_new_game, popup='进行玩家属性设置')
Exemple #22
0
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)
Exemple #23
0
 def page1():
     # 当一个子页面完全只属于一个父页面而不需要被其他页面调用时,
     # 可以将象征这个子页面的函数(如:page1)放在父函数(ui_gui_logic)内。
     a.page()  # 新建一个页面
     a.h('第一页')
     a.t()
     a.b('返回', a.back)
     a.b('下一页', change_page, page2)
     a.b('回到主界面', a.back, num=2)  # 向 back 传递参数 num,可以指定返回到第几个父节点。
 def page1():
     # 当一个子页面完全只属于一个父页面而不需要被其他页面调用时,
     # 可以将象征这个子页面的函数(如:page1)放在父函数(ui_gui_logic)内。
     a.page({'background-color': '#434648'})  # 新建一个红色页面
     a.h('第一页(暨页面着色演示)')
     a.t()
     a.b('返回', a.back)
     a.b('下一页', change_page, page2)
     a.b('回到主界面', a.back, num=2)  # 向 back 传递参数 num,可以指定返回到第几个父节点。
Exemple #25
0
def bit():
    a.page()
    a.mode('grid', 1)
    a.t()
    a.t()
    a.t('群主:“哎呀哎呀别打啦!”')
    a.t()
    a.t()
    a.b('好吧,饶你一命', a.goto, goon)
Exemple #26
0
def ui_title():
    era.page()
    era.h('eraEQC RE:dream v' + version)
    era.t('with Era.js v' + era.version)
    era.t()
    era.t()
    era.b('华灯初上', era.goto, ui_start_game, popup='开始游戏')
    era.t()
    era.t()
    era.b('晨光熹微', era.exit, popup='退出游戏')
def ui_mod():
    def rest():
        a.msg('我会很快搞定的,等我!')
        a.back()
    a.page()
    a.mode('grid', 1)
    a.h('我还没想好怎么写教程……')
    a.t()
    a.t()
    a.b('我先暂时不用吧', rest)
def ui_code():
    a.page()
    a.mode('grid', 1)
    a.h('代码组织教程')
    a.t()
    a.t()
    a.t('和以前是一样的嘛!')
    a.t()
    a.t()
    a.b('也就是说还没写咯?', a.back)
Exemple #29
0
def ui_main():
    def target_choose(target: str):
        c.target = c.charalist[int(target[1])]
        era.goto(ui_main)

    def main_save_game():
        era.page()
        era.h('保存游戏')
        # data.save()
        era.show_save_to_save()
        era.b('返回', era.back)

    def main_load_game():
        era.page()
        era.h('读取游戏')
        era.show_save_to_load(load_goto)
        era.b('返回', era.back)

    def load_goto():
        era.data['chara'] = character.Character()
        # data.load()
        era.goto(ui_main)

    def target_info(id) -> str:
        info = '[' + str(id) + ']' + str(c.charalist[id].str_data.name)
        return info

    def charalist_infos() -> List[str]:
        infos: List[str] = []
        for i in c.charalist:
            infos.append(target_info(i.id))

        return infos

    c: CharacterAdmin = era.data['chara']  # 一个常驻的对象,类的全称是character_admin
    era.page()
    c.error_fix()
    era.t('主人' + c.master.str_data.name)
    era.t()
    era.t('助手' + c.assist.str_data.name)
    era.t()
    era.t('目标' + c.target.str_data.name)
    # era.t()
    # era.t('查看角色:')
    # era.dropdown(chara_list_infos(), target_choose, target_info(c.target.id))
    era.t()
    era.b('召唤角色', era.goto, ui_make_chara)
    if c.target.id == 1:
        era.b('自慰', era.goto, ui_make_love)
    else:
        era.b('调教角色', era.goto, ui_make_love)

    era.b('保存进度', era.goto, main_save_game)
    era.b('读取进度', era.goto, main_load_game)
    era.b('返回标题', era.goto, ui_title)
Exemple #30
0
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)