ASCII操作系统没人要求。
加入我们的不和谐! https://discord.gg/fptu8eb
SOS是借助Löve2d的帮助,对用LUA编写的基于文本的操作系统进行了模拟。也可以加载应用程序,使您可以开发或下载任何可以想象的内容并在SOS中运行它!作为用户,这对您来说是完全安全的,可以在Internet上下载随机的LUA脚本并将其投入 /程序 /,因为所有应用程序都将所有应用程序加载到沙盒环境中。这些应用只能访问数学功能,SOS API和其他一些实用程序。
您需要安装爱情2D才能运行SOS。如果安装了Zerobrane IDE,则可以打开SOS作为项目,转到Project> Lua解释器并将其设置为爱,然后使用F6执行。否则,将SOS插入“ love.exe”的文件夹。
0.1是我们的第一个主要里程碑。奇怪的是,因为SOS仍然是用LUA编写的基于伪造的伪操作系统,但它在这里。现在可以加载,关闭应用程序,我们有了一种新的且更优化的渲染方法。现在,您拥有一个在屏幕中间几乎完整屏幕的应用程序,每一侧都有一个侧边栏,显示当前运行的应用程序和其他系统信息。我们还有很长的路要走,但是对于一个不到一周前开始的项目(是的,我知道... o_o),我们已经做得很远。
敬请关注!
在左侧...
TAB (或Shift + Tab )通过开放应用程序循环。即使应用程序打开,您也可以循环浏览“无应用”条目,使所有应用程序都在后台运行。
Escape关闭了当前选定的应用程序。如果未选择应用程序(如上所述),则逃脱关闭SOS。
在右侧...
在检测到的应用程序中页上的页面和页面循环。所选的应用程序旁边有一个'>'。
最终在选择系统应用程序(顶部)和用户应用程序(底部)之间进行切换。
Home通过选择的应用程序开始了一个新的过程。
App开发使用S-Code,这只是用SOS API说出环境有限LUA的一种简单方法。沙盒环境设置的链接在这里:https://hastebin.com/acolabiqez.lua您可以使用其中包含的任何LUA功能,包括底部的API功能。随着更多功能的强加,此页面将被更新。
api.g.set(x,y,char)
输入:'x'和'y'是角色的坐标,(1,1)是左上角。 “ char”应该是一个角色。
结果:将“ char”放在下一个绘制()中呈现的画布上的坐标。在draw()中使用。
返回:是的
api.g.get(x,y)
输入:'x'和'y'是角色的坐标,(1,1)是左上角。
结果:从最后一个draw()从该坐标处获取char。在tick()中使用。
返回:字符串
api.g.text(x,y,str)
输入:'x'和'y'是字符串开始的坐标,(1,1)是左上角。 “ str”应该是一个或多个字符的字符串。
结果:将“ str”放在下一个绘制()中呈现的画布上的坐标。在draw()中使用。
返回:是的
API.G.Box(X,Y,W,H,Adapt)
输入:“ x”和“ y”是框开始的坐标,(1,1)是左上方。 'W'和'H'是盒子外部的宽度和高度,因此内部在每个维度上少2个单元。如果要绘制的盒子的边缘和角落应自动重新格式化以制作网格或相交线,而不是覆盖其他盒子的边缘,则“适应”是一种布尔值。
结果:从ASCII字符中绘制一个矩形。适应具有上述特殊效果。
返回:是的
api.g.bar(x,y,腿,方向,样式,百分比)
输入:'x'和'y'是栏开始的坐标,(1,1)是左上角。 ``长度''是条应有多少个字符。从一开始,“方向”是栏将进入的方向。“样式”是栏的外观(以后的样式更多信息,当前样式为'Block'和'Fade')。 “百分比”是应填充多少条。
结果:使用字符创建一个进度栏显示。条总是圆形到最近的唯一显示器,因此0.9999不会填充条,只有1.0(或更高)。 0.0将永远是一个空栏。
返回:是的
API.I.Keystat(键)
输入:“键”是要检查键的名称的字符串。例如,“ a”,“ shift”,“ space”。
结果:检查是否按下键。如果不是活动应用,将不会检测到键。
返回:如果按下键,则为true,否则为false。
api.s.sappstable()
输入:什么都没有。
结果:返回(深副本)应用程序表。这有点复杂,稍后将在Wiki上进行记录。
返回:应用程序(表)
以下功能由SOS调用。这也是他们被称为的顺序,因此相应地进行编码。
加载()
一次加载一次。应包含有关应用程序的信息。
TextInput(char)
选修的。 'char'是一个字符键入并正确格式化的字符。例如,如果您持有“ shift”并点击“ a”,则此功能将使用参数为“ A”。对于易于键入很有用。
键盘(钥匙,代表)
选修的。 “钥匙”是钥匙的名称。 “ rep”是因为呼叫是因为重复键而无需发布键,就像您在聊天框中握住钥匙,然后键入一个字母,暂停,然后重复该字符。这是由您的实际操作系统定义的,如果“ rep”为真,则可以通过忽略呼叫来忽略。
钥匙释放(键)
选修的。 “钥匙”是钥匙的名称。如果释放键,则调用此功能。
打钩()
叫每个tick。仍然可以访问上一个周期的画布,因此API.G.Get()仍然可以使用。
tick()和draw()之前重置画布。
绘制(宽度,高度)
每次滴答后打电话。现在是时候将东西吸引到画布上以显示了。 “宽度”和“高度”是当前帆布宽度和高度的参数。
这是一个模板:https://hastebin.com/iqukigiril.lua,除了设置应用程序之外,它无能为力。
该应用必须以“ local App = {}”开头,然后以'return(app)'结束。所有功能都必须以“应用”开头,例如'app.load()'或'app.customfunction()'。
必须将应用程序放入SOS的 /程序 /文件夹中。将自动检测到它们。