نظام التشغيل ASCII لم يطلب أحد.
انضم إلينا في Discord! https://discord.gg/fptu8eb
SOS عبارة عن محاكاة لنظام التشغيل النصفي المكتوب في LUA بمساعدة Löve 2D. يمكن أيضًا تحميل التطبيقات ، مما يسمح لك بتطوير أو تنزيل أي شيء يمكنك تخيله وتشغيله في SOS! هذا آمن تمامًا بالنسبة لك كمستخدم لتنزيل نصوص LUA العشوائية على الإنترنت ورميها في / برامج / لأن جميع التطبيقات يتم تحميلها في بيئة رمل. تمكن التطبيقات فقط من الوصول إلى وظائف الرياضيات و API SOS وبعض المرافق الأخرى.
تحتاج إلى تثبيت الحب 2D لتشغيل SOS. إذا قمت بتثبيت Zerobrane IDE ، فيمكنك فتح SOS كمشروع ، والانتقال إلى Project> Lua مترجم وتعيينه على الحب ، ثم استخدم F6 للتنفيذ. خلاف ذلك ، اسحب المجلد الذي يكون SOS في "love.exe".
0.1 هو أول معلم رئيسي لنا. من الغريب أن يطلق عليه ذلك أنه لأن SOS لا يزال نظام تشغيل Pseudo المستند إلى نص عربات التي تجرّب عربات التي تجرها العربات التي تجرها العربات المكتوب في لوا ، لكنها هنا. يمكن الآن تحميل التطبيقات وإغلاقها ، ولدينا طريقة جديدة وأكثر تحسينًا قليلاً لتقديمها. الآن ، لديك تطبيق واحد يتم شحنه إلى حد كبير في منتصف الشاشة وشريط جانبي على كل جانب يعرض تطبيقات التشغيل الحالية ومعلومات النظام الأخرى. لدينا طريق طويل لنقطعه ، ولكن بالنسبة لمشروع بدأ قبل أقل من أسبوع (نعم ، أعرف ... O_O) لقد جعلناه بعيدًا جدًا.
ابقوا متابعين!
على اليسار ...
Tab (أو Shift + Tab ) دورات من خلال التطبيقات المفتوحة. حتى عندما تكون التطبيقات مفتوحة ، يمكنك تدوير إدخال "لا تطبيق" ، مما يجعل جميع التطبيقات تعمل في الخلفية.
Escape يغلق تطبيق CurrentLty المحدد. إذا لم يتم تحديد أي تطبيق (موضح أعلاه) ، فإن Escape يغلق SOS.
على اليمين ...
الصفحة لأعلى وصفحة أسفل دورة من خلال التطبيقات المكتشفة. يحتوي التطبيق المحدد على ">" بجانبه.
مفاتيح النهاية بين تحديد تطبيقات النظام (في الأعلى) وتطبيقات المستخدم (في الأسفل).
يبدأ المنزل عملية جديدة مع تحديد التطبيق.
يستخدم تطوير التطبيق S-Code ، وهو مجرد وسيلة أسهل لقول LUA المحدودة البيئة مع SOS API. رابط الإعداد لبيئة صندوق الرمل هو هنا: https://hastebin.com/acolabiqez.lua يمكنك استخدام أي وظائف LUA مدرجة هناك ، بما في ذلك وظائف API في الأسفل. سيتم تحديث هذه الصفحة حيث يتم عرض المزيد من الميزات.
api.g.set (x ، y ، char)
المدخلات: "X" و "Y" هي الإحداثيات للشخصية ، مع (1 ، 1) كونها أعلى اليسار. "شار" يجب أن يكون شخصية واحدة.
النتيجة: يتم وضع "char" على هذا التنسيق على القماش المطلوب تقديمه في السحب التالي (). استخدام في السحب ().
العودة: صحيح
api.g.get (x ، y)
المدخلات: "X" و "Y" هي الإحداثيات للشخصية ، مع (1 ، 1) كونها أعلى اليسار.
النتيجة: يجلب char في هذا التنسيق من السحب الأخير (). استخدام في tick ().
العودة: سلسلة
api.g.text (x ، y ، str)
المدخلات: "X" و "Y" هي الإحداثيات لبدء السلسلة ، مع وجود (1 ، 1) من أعلى اليسار. يجب أن تكون "Str" سلسلة من حرف واحد أو أكثر.
النتيجة: يتم وضع "str" على هذا الإحداثي على القماش المطلوب تقديمه في السحب التالي (). استخدام في السحب ().
العودة: صحيح
API.G.Box (X ، Y ، W ، H ، Adapt)
المدخلات: "X" و "Y" هي الإحداثيات لبداية المربع ، مع (1 ، 1) كونها أعلى اليسار. "W 'و" H "هما عرض وارتفاع الجزء الخارجي من الصندوق ، وبالتالي فإن الداخل هو وحدتين أقل على كل بعد. يعد "Adapt" منطقية إذا كانت حواف وزوايا الصندوق التي يتم رسمها تلقائيًا تلقائيًا لصنع الشبكات أو الخطوط المتقاطعة بدلاً من الكتابة فوق حواف الصناديق الأخرى.
النتيجة: يرسم مستطيل من أحرف ASCII. التكيف له مؤثرات خاصة موصوفة أعلاه.
العودة: صحيح
API.G.Bar (X ، Y ، Legth ، الاتجاه ، النمط ، النسبة المئوية)
المدخلات: "X" و "Y" هي إحداثيات لبداية الشريط ، مع (1 ، 1) كونها أعلى اليسار. "الطول" هو عدد الأحرف التي يجب أن يكون فيها الشريط. "الاتجاه" هو الاتجاه ، من البداية ، الذي سيدخله الشريط. "النسبة المئوية" هي مقدار الشريط الذي يجب ملؤه.
النتيجة: إنشاء عرض شريط تقدم باستخدام الأحرف. دائمًا ما تكون القضبان تدور حول أقرب شاشة فريدة ، لذا لن يملأ 0.9999 الشريط ، فقط 1.0 (أو أكبر). 0.0 سيكون دائما شريط فارغ.
العودة: صحيح
api.i.keystat (مفتاح)
المدخلات: "المفتاح" هي سلسلة لاسم المفتاح الذي سيتم فحصه. على سبيل المثال ، "A" ، "Shift" ، "Space".
النتيجة: الشيكات لمعرفة ما إذا كان المفتاح يتم الضغط عليه. لن يكتشف المفاتيح إن لم يكن تطبيقًا نشطًا.
العودة: صحيح إذا تم الضغط على المفتاح ، خطأ خلاف ذلك.
API.S.AppStable ()
المدخلات: لا شيء.
النتيجة: إرجاع (نسخة عميقة من) جدول التطبيقات. هذا أكثر تعقيدًا قليلاً وسيتم توثيقه على الويكي لاحقًا.
العودة: التطبيقات (الجدول)
تسمى الوظائف التالية من قبل SOS. هذا هو أيضًا الترتيب الذي يتم استدعاؤهم به ، لذلك رمز وفقًا لذلك.
حمولة()
دعا مرة واحدة على الحمل. يجب أن تحتوي على معلومات حول التطبيق.
TextInput (char)
خياري. "char" هو حرف مكتوب وتنسيق بشكل صحيح. على سبيل المثال ، إذا كنت تحمل "Shift" وضرب "A" ، فستتصل هذه الوظيفة مع الوسيطة "A". مفيد لكتابة سهلة.
keypress (مفتاح ، ممثل)
خياري. "المفتاح" هو اسم المفتاح. "REP" إذا كانت المكالمة بسبب تكرار المفتاح دون إطلاقها ، تمامًا كما لو كنت تحمل مفتاحًا في مربع الدردشة وتكوين حرفًا واحدًا ، ويتوقف مؤقتًا ، ثم يكرر هذا الحرف. يتم تعريف ذلك بواسطة نظام التشغيل الفعلي الخاص بك ويمكن تجاهله من خلال تجاهل المكالمة إذا كان "Rep" صحيحًا.
keyrelease (مفتاح)
خياري. "المفتاح" هو اسم المفتاح. يتم استدعاء هذه الوظيفة إذا تم إصدار مفتاح.
علامة ()
دعا كل علامة. لا يزال لديه إمكانية الوصول إلى قماش الدورة الأخيرة ، لذا فإن API.G.Get () سيظل يعمل.
تتم إعادة تعيين القماش بعد tick () وقبل Draw ().
رسم (عرض ، ارتفاع)
دعا بعد كل علامة. الآن هو الوقت المناسب لرسم الأشياء على القماش لعرضه. "العرض" و "الارتفاع" هما وسيطات لعرض وارتفاع اللوحة الحالية.
هذا قالب: https://hastebin.com/iquigiril.lua لا يفعل أي شيء سوى إعداد التطبيق.
يجب أن يبدأ التطبيق بـ "App Local = {}" وينتهي بـ "Return (App)". يجب أن تبدأ جميع الوظائف بـ "App." ، مثل "App.load ()" أو "App.CustomFunction ()".
يجب وضع التطبيقات في / برامج / مجلد SOS. سيتم اكتشافها تلقائيًا.