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的 /程序 /文件夾中。將自動檢測到它們。