猫史档案馆


【神奇代码岛新一代代码辅助工具】Box3 代码模型 上线啦!

用户:天下第一皮卡丘天下第一皮卡丘查看:8 回复:7 评论:8 创建时间:2021-08-04T08:58:37


——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

话不多说,直接上干货(Python代码)

import easygui as gui
import win32clipboard as wcb
import win32con as wc

class External_production_model(object):#外部制作的代码模型
    def visit(self):
        global s
        s = gui.buttonbox(msg='参数内容包含:'+str(self.parameter), title=self.name, choices=('使用', '导出', '谢谢,不用'))
        if s == '使用':
            self.use()
        elif s=='导出':
            self.preservation()

    def use(self):
        self.prt=[]
        for i in self.parameter:
            self.prt.append(gui.enterbox(msg='请输入'+i +':',title='输入参数', default=''))
        wcb.OpenClipboard()
        wcb.EmptyClipboard()
        wcb.SetClipboardData(wc.CF_TEXT, str(eval(self._return)).encode("gbk"))
        wcb.CloseClipboard()
        gui.msgbox(msg='完成', title='已完成,最终内容在复制板', ok_button='谢谢')

    def create(self):
        self.name=gui.enterbox(msg='请输入模型名', title='编辑模型', default='')
        self.parameter=[]
        for i in range(int(gui.enterbox(msg='请输入参数数量', title='编辑模型', default=''))):
            self.parameter.append(gui.enterbox(msg='请输入第'+str(i)+'项参数(名)', title='编辑模型', default=''))
        self._return = gui.enterbox(msg='请输入返回值(参数使用self.prt[项数]的格式表示,是字符串)', title='编辑模型', default='')
        wcb.OpenClipboard()
        wcb.EmptyClipboard()
        wcb.SetClipboardData(
        wc.CF_TEXT, (self.name+'&'+str(','.join(self.parameter))+'&'+self._return).encode("gbk"))
        wcb.CloseClipboard()
        gui.msgbox(msg='自动为您保存,最终内容在复制板', title='完成', ok_button='谢谢')

    def preservation(self):
        wcb.OpenClipboard()
        wcb.EmptyClipboard()
        wcb.SetClipboardData(wc.CF_TEXT, (self.name+'&'+str(','.join(self.parameter))+'&'+self._return).encode("gbk"))
        wcb.CloseClipboard()
        gui.msgbox(msg='已完成,最终内容在复制板', title='完成', ok_button='谢谢')

    def _import(self):
        s=gui.enterbox(msg='请输入导入内容',title='导入模型', default='')
        s=s.split('&')
        self.name=s[0]
        self.parameter = s[1].split(',')
        self._return = s[2]

class Internal_Imported_model(External_production_model):#内部存在的代码模型
    def __init__(self,name,parameter,_return):
        self.name=name
        self.parameter=parameter
        self.prt=[]
        self._return=_return

model=External_production_model()
while True:
    a=gui.buttonbox(msg='欢迎来到由立体工作室-天下第一皮卡丘研发的Box3 代码模型!',
    title='Box3 代码模型!',choices=('官方模型','制作模型','导入模型','使用教程','关于作者','退出软件'))
    if a=='官方模型':
        gui.msgbox(msg='暂无官方模型', title='官方模型')
    elif a=='制作模型':
        model.create()
    elif a=='导入模型':
        model._import()
        s=0
        while s!='谢谢,不用':
            model.visit()
    elif a=='使用教程':
        gui.msgbox(msg='参数是用来控制功能的',title='使用教程')
        gui.msgbox(msg='首先要输入个数,再输入各个参数名', title='使用教程')
        gui.msgbox(msg='最后的是以字符串输出的代码,使用的是Python', title='使用教程')
        gui.msgbox(msg='导入和导出可以保存模型', title='使用教程')
        gui.msgbox(msg='“使用”可以填写参数,通过参数得到最后的代码,方便编写', title='使用教程')
    elif a=='关于作者':
        gui.msgbox(msg='在Box3中活动,《逃离九宫岛》的作者',title='关于作者')
    elif a == '退出软件':
        gui.msgbox(msg='欢迎您再次来到 Box3 代码模型,方便您的代码编写!',title='退出')
        break
注意啦,要想使用功能需要先下载easygui库(界面布局)和win32库(复制粘贴)!!! 注意啦,要想使用功能需要先下载easygui库(界面布局)和win32库(复制粘贴)!!! 注意啦,要想使用功能需要先下载easygui库(界面布局)和win32库(复制粘贴)!!! (重要的事情说三遍)   这个软件怎么用呢? 举个例子,我们做一个和实体交互可以说一句话,代码应该这样写:
const npc = world.querySelector('#NPC');
npc.enableInteract = true;
npc.interactHint = 'NPC';
npc.interactRadius = 10;

npc.onInteract( ({entity}) => {
    npc.say('你好! ' + entity.player.name);
});

如果我们做成代码模型(以下简称模型),应该这样做:

点击制作模型:

输入模型名:NPC交互

输入参数数量:3(名字,交互名字,文字){在进行编写返回代码时,参数会被描述成 self.prt[项数] }

输入返回代码:

const npc = world.querySelector('+self.prt[0]+');
npc.enableInteract = true;
npc.interactHint = '+self.prt[1]+';
npc.interactRadius = 10;

npc.onInteract( ({entity}) => {
    npc.say('+self.prt[2]+');
});

懂得都懂,这就是Python的''中的字符串拼接,只要一个eval就可以成功变成返回值嘛!

 

现在,我们的函数被保存在复制版中,可以找一个文本文档来保存它。

然后,再选择“导入模型”,把对应的三个参数填写好,就可以得到最终的代码了!

 

PS:现在,我向所有岛3代码师发出征集,有什么问题,可以向我提!

祝你们保住头发,健康、开森地生活着!

emotion_编程猫_加油


回复

上一页1 页 / 共 1下一页
拍打星拍打星

沙发!

点赞2


评论


如风gvk如风gvk

你好厉害呀!,能和我这个地图合作么(目前招到两名建筑师,急需代码师emotion_鼓掌)论坛网址:https://shequ.codemao.cn/community/389547(地图名字随便起的,不要在意)

点赞2


评论


async_functionasync_function

地板

点赞1


评论


一个STUB用户_6923702一个STUB用户_6923702

…………………………

点赞1


评论


YDS尹子YDS尹子

比较麻烦哦

建议你可以学习下html+js,这样可以做成网页更简洁哦

点赞1


评论


SHEL深空无尽SHEL深空无尽

az

哪来的win32库

点赞1


评论


SWAT若谷0101SWAT若谷0101

啊这emotion_雷电猴_疑问

 

点赞0


评论