ASCII 운영 체제는 아무도 요구하지 않았습니다.
Discord에 우리와 함께하십시오! https://discord.gg/fptu8eb
SOS는 LOVE 2D의 도움으로 LUA로 작성된 텍스트 기반 OS의 시뮬레이션입니다. 앱을로드하여 상상하고 실행할 수있는 모든 것을 개발하거나 다운로드 할 수 있습니다! 이는 사용자로서 인터넷에서 임의의 LUA 스크립트를 다운로드하여 모든 앱이 샌드 박스 환경에로드되어 있기 때문에 / 프로그램 / 프로그램에 버릴 수 있습니다. 앱은 수학 기능, SOS API 및 기타 유틸리티에만 액세스 할 수 있습니다.
SOS를 실행하려면 Love 2D를 설치해야합니다. Zerobrane IDE를 설치 한 경우 SOS를 프로젝트로 열고 Project> LUA 통역사로 이동하여 사랑하도록 설정 한 다음 F6을 사용하여 실행할 수 있습니다. 그렇지 않으면 SOS에있는 폴더를 'love.exe'로 드래그하십시오.
0.1은 우리의 첫 번째 주요 이정표입니다. SOS는 여전히 LUA에서 작성된 버기가 큰 텍스트 기반 의사 운영 체제이기 때문에 여기에 있습니다. 이제 앱을로드하고 닫을 수 있으며 새롭고 약간 최적화 된 렌더링 방법이 있습니다. 이제 화면 중간에 거의 전체 스크린 앱과 각 측면에 사이드 바가 현재 실행중인 앱 및 기타 시스템 정보를 표시하는 앱이 하나 있습니다. 우리는 갈 길이 멀지 만, 일주일도 채되지 않아 시작된 프로젝트의 경우 (예, 알고 있습니다 ... O_O) 우리는 그것을 꽤 멀리 만들었습니다.
계속 지켜봐!
왼쪽에 ...
탭 (또는 Shift + Tab )은 열린 앱을 통해 순환합니다. 앱이 열려 있더라도 '앱 없음'항목을 순환하여 모든 앱을 백그라운드에서 실행할 수 있습니다.
Escape는 현재 선택된 앱을 닫습니다. 앱이 선택되지 않으면 (위에 설명) Escape는 SOS를 닫습니다.
오른쪽 ...
검출 된 앱을 통해 Page Up 및 Page Down 사이클. 선택한 앱에는 옆에 '>'가 있습니다.
엔드는 시스템 앱 선택 (상단)과 사용자 앱 (하단) 사이의 전환을 전환합니다.
홈은 앱을 선택한 상태에서 새로운 프로세스를 시작합니다.
앱 개발은 SOS API와 함께 환경 제한 LUA를 말하는 쉬운 방법 인 S 코드를 사용합니다. 샌드 박스 환경의 설정 링크는 다음과 같습니다. https://hastebin.com/acolabiqez.lua 하단의 API 기능을 포함하여 포함 된 LUA 기능을 사용할 수 있습니다. 이 페이지는 더 많은 기능이 이루어지면 업데이트됩니다.
api.g.set (x, y, char)
입력 : 'x'와 'y'는 문자의 좌표이며 (1, 1)은 왼쪽 상단입니다. 'char'는 단일 캐릭터 여야합니다.
결과 : 캔버스의 좌표에 'char'가 다음 draw ()에서 렌더링됩니다. draw ()에서 사용합니다.
반환 : 참
api.g.get (x, y)
입력 : 'x'와 'y'는 문자의 좌표이며 (1, 1)은 왼쪽 상단입니다.
결과 : 마지막 드로우 ()에서 해당 좌표에서 숯을 가져옵니다. tick ()에서 사용하십시오.
반환 : 문자열
api.g.text (x, y, str)
입력 : 'x'와 'y'는 문자열 시작의 좌표이며 (1, 1)은 왼쪽 상단입니다. 'str'는 하나 이상의 문자의 문자열이어야합니다.
결과 : 'str'는 다음 Draw ()에서 캔버스의 좌표에 넣습니다. draw ()에서 사용합니다.
반환 : 참
api.g.box (x, y, w, h, adapt)
입력 : 'X'와 'y'는 상자 시작의 좌표이며 (1, 1)은 왼쪽 상단입니다. 'w'와 'h'는 상자 외부의 너비와 높이이므로 내부는 각 차원에서 2 개의 단위가 적습니다. 'Adapt'는 다른 상자의 가장자리를 덮어 쓰는 대신 그리드 나 교차 선을 만들기 위해 자동으로 재구성 해야하는 경우 부울입니다.
결과 : ASCII 문자로 사각형을 그립니다. Adapt에는 위에서 설명한 특수 효과가 있습니다.
반환 : 참
api.g.bar (x, y, legth, 방향, 스타일, 비율)
입력 : 'X'와 'y'는 막대의 시작을위한 좌표이며 (1, 1)은 왼쪽 상단입니다. '길이'는 바가 얼마나 많은 캐릭터인지입니다. '방향'은 처음부터 바가 들어갈 것입니다. '스타일'은 바의 모양입니다 (나중에 스타일에 대한 추가 정보는 현재 스타일이 '블록'과 '페이드')입니다. '백분율'은 막대의 양을 채워야합니다.
결과 : 문자를 사용하여 진행 막대 디스플레이를 만듭니다. 막대는 항상 가장 가까운 독특한 디스플레이로 반올림하므로 0.9999는 막대를 채우지 않으며 1.0 (또는 더 큰) 만 있습니다. 0.0은 항상 빈 바가됩니다.
반환 : 참
api.i.keystat (키)
입력 : '키'는 확인할 키 이름의 문자열입니다. 예를 들어, "A", "Shift", "Space".
결과 : 키가 누적되는지 확인합니다. 활성화 된 앱이없는 경우 키를 감지하지 않습니다.
반환 : 키가 눌려지면 true, 그렇지 않으면 false.
API.S.Appstable ()
입력 : 아무것도.
결과 : 앱 테이블의 반환 (깊은 사본). 이것은 조금 더 복잡하며 나중에 위키에 문서화 될 것입니다.
반품 : 앱 (테이블)
SOS에서 다음 기능을 호출합니다. 이것은 또한 그들이 호출되는 순서이므로 그에 따라 코딩하십시오.
짐()
로드에 한 번 호출됩니다. 앱에 대한 정보가 포함되어야합니다.
TextInput (char)
선택 과목. 'char'는 올바르게 입력하고 형식화 된 문자입니다. 예를 들어, 'shift'를 잡고 'a'를 누르면이 기능은 인수 'a'와 함께 호출됩니다. 쉽게 타이핑하는 데 유용합니다.
Keypress (키, 담당자)
선택 과목. '키'는 키의 이름입니다. 'Rep'는 채팅 상자에 키를 잡고 한 글자를 입력하고 일시 중지 한 다음 해당 캐릭터를 반복하는 것처럼 호출이 출시되지 않고 반복되는 경우입니다. 이것은 실제 운영 체제에 의해 정의되며 'rep'가 참이면 전화를 무시하여 무시할 수 있습니다.
키 리 레아 제 (키)
선택 과목. '키'는 키의 이름입니다. 키가 릴리스되면이 기능이 호출됩니다.
진드기()
모든 진드기를 불렀습니다. 여전히 마지막 사이클의 캔버스에 액세스 할 수 있으므로 api.g.get ()가 여전히 작동합니다.
캔버스는 tick () 이후에 그리고 draw () 전에 재설정됩니다.
드로우 (너비, 높이)
모든 진드기 후에 전화를 걸었습니다. 지금은 캔버스에 물건을 그릴 때입니다. '폭'과 '높이'는 현재 캔버스 너비와 높이에 대한 인수입니다.
이것은 템플릿입니다 : https://hastebin.com/iqukigiril.lua 앱을 설정하지 않고 앱을 설정합니다.
앱은 '로컬 앱 = {}'로 시작하고 'return (app)'로 끝나야합니다. 모든 기능은 'app.load ()'또는 'app.customfunction ()'와 같은 'app.'로 시작해야합니다.
앱은 SOS의 / 프로그램 / 폴더에 배치해야합니다. 자동으로 감지됩니다.