لبات ASPLلبات 0.7.0

البحث في التوثيق

يبدأ البحث بالتوثيق الحالي بالعربية · لبات 0.7.0

اكتب اسما كاملا مثل read_line أو كلمات عن الموضوع.

    English
    ملفات المصدر

    افتح ملف .aspl أو .لبات بترميز UTF-8، حتى 1 MiB، في مسودة جديدة. يبقى الملف في هذا المتصفح ولا يُشغّل تلقائياً.

    قراءة لوحة المفاتيح والفأرة وتغيير الحجم

    لبات 0.7.0 · الإصدار الحالي

    المضيف الأصلي فقط. يختار النقر الأيسر أو التمرير اللون العنابي. يختاره مفتاح المسافة أيضا، لكن يتقدم المحرف المنتظر في الطابور، بما فيه المسافة المكتوبة، ويختار الأخضر الداكن. يطبع كل محرف مستهلك رقم قيمة Unicode له. يطبع الإطار الأول وتغيير الحجم أبعاد الشاشة المنطقية والتصيير الفيزيائية. ينتهي التكرار بمفتاح الهروب أو بعد 180 إطارا بحالة 0. يعتمد الإخراج على المضيف والإدخال.

    محتويات الصفحة

    تجهيز المضيف الأصلي

    المضيف الأصلي فقط، لبات 0.7.0 المنشور. يختار النقر الأيسر أو التمرير اللون العنابي. يختاره مفتاح المسافة أيضا، لكن يتقدم المحرف المنتظر في الطابور، بما فيه المسافة المكتوبة، ويختار الأخضر الداكن. يطبع كل محرف مستهلك رقم قيمة Unicode له. يطبع الإطار الأول وتغيير الحجم أبعاد الشاشة المنطقية والتصيير الفيزيائية. ينتهي التكرار بمفتاح الهروب أو بعد 180 إطارا بحالة 0. يعتمد الإخراج على المضيف والإدخال.

    التثبيت الأصلي · دليل الرسم والإدخال · مرجع الواجهة.

    لا يحتاج إلى وحدات مصدر أو ملفات بيانات.

    لغة الصفحة مستقلة عن مفردات المصدر. نزّل الصيغ الموردة فقط بأسمائها الأصلية. تحمل البرامج ذات الصيغة المختلطة وحدها هذا الوصف في اللغتين، دون توليد ترجمة للمصدر.

    المصدر العربي

    المضيف الأصلي فقط · لبات 0.7.0 · مصدر عربي

    التنفيذ: المضيف الأصلي فقط · لبات 0.7.0

    المتطلبات السابقة:
    • لبات 0.7.0 أصلي على Linux بمعمارية x86_64 وglibc 2.34 أو أحدث.
    • يحتاج التشغيل إلى شاشة Wayland/EGL أو X11/GLX متاحة وOpenGL 3.3 core. لا يحتاج إلى Raylib نظامي أو مترجم C. لا يحتاج الفحص والبناء إلى شاشة.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    // شغل باستخدام: aspl run docs/examples/raylib/نافذة-وإدخال.لبات
    // اكتب نصا أو انقر أو مرر لتغيير اللون. غير الحجم لطباعة الأبعاد الجديدة.
    // يطلب مفتاح الهروب الإغلاق. يتوقف المثال أيضا بعد 180 إطارا.
    استورد أساسي::رايليب.
    
    دالة ابدأ_الرئيسية() -> ص64 {
        دع أعلام = رايليب::اضبط_أعلام_الإعداد(رايليب::علم_نافذة_قابلة_للتحجيم).
        دع معدل_الإطارات = رايليب::اضبط_معدل_الإطارات(60).
        إذا لا أعلام::نجاح أو لا معدل_الإطارات::نجاح { أرجع 1. }
        دع مفتوح = رايليب::هيئ_نافذة(640, 360, "ASPL input / إدخال رايليب").
        إذا لا مفتوح::نجاح { اطبع(مفتوح::الخطأ::الرسالة). أرجع 2. }
        دع مفتاح_خروج = رايليب::اضبط_مفتاح_الخروج(رايليب::مفتاح_هروب).
        إذا لا مفتاح_خروج::نجاح { اطبع(مفتاح_خروج::الخطأ::الرسالة). أرجع 3. }
        متغير إطار: ص64 = 0.
        متغير لون = رايليب::أزرق_سماوي.
        طالما إطار < 180 {
            دع إغلاق_جار = رايليب::هل_يجب_إغلاق_النافذة().
            إذا لا إغلاق_جار::نجاح { اطبع(إغلاق_جار::الخطأ::الرسالة). أرجع 4. }
            إذا إغلاق_جار::قيمة { أرجع 0. }
            دع منقور = رايليب::هل_ضغط_زر_الفأرة(رايليب::زر_فأرة_أيسر).
            دع مضغوط = رايليب::هل_ضغط_المفتاح(رايليب::مفتاح_مسافة).
            دع عجلة = رايليب::حركة_عجلة_الفأرة().
            إذا لا منقور::نجاح أو لا مضغوط::نجاح أو لا عجلة::نجاح { أرجع 5. }
            إذا منقور::قيمة أو مضغوط::قيمة أو عجلة::قيمة لا يطابق 0.0 { لون = رايليب::عنابي. }
            دع مدخل = رايليب::المحرف_المدخل().
            دع مفتاح = رايليب::المفتاح_المضغوط().
            إذا لا مدخل::نجاح أو لا مفتاح::نجاح { أرجع 6. }
            إذا مدخل::قيمة لا يطابق 0 {
                لون = رايليب::أخضر_داكن.
                اطبع("Unicode / محرف: "). اطبع(نسق_ص64(ص64(مدخل::قيمة))). اطبع("\س").
            }
            دع محجم = رايليب::هل_تغير_حجم_النافذة().
            إذا لا محجم::نجاح { أرجع 7. }
            إذا محجم::قيمة أو إطار يطابق 0 {
                دع عرض = رايليب::عرض_الشاشة(). دع ارتفاع = رايليب::ارتفاع_الشاشة().
                دع عرض_الرسم = رايليب::عرض_التصيير(). دع ارتفاع_الرسم = رايليب::ارتفاع_التصيير().
                إذا لا عرض::نجاح أو لا ارتفاع::نجاح أو لا عرض_الرسم::نجاح أو لا ارتفاع_الرسم::نجاح { أرجع 8. }
                اطبع("Screen / شاشة: "). اطبع(نسق_ص64(ص64(عرض::قيمة))). اطبع("x"). اطبع(نسق_ص64(ص64(ارتفاع::قيمة))).
                اطبع(" render="). اطبع(نسق_ص64(ص64(عرض_الرسم::قيمة))). اطبع("x"). اطبع(نسق_ص64(ص64(ارتفاع_الرسم::قيمة))). اطبع("\س").
            }
            دع مبدوء = رايليب::ابدأ_الرسم().
            إذا لا مبدوء::نجاح { اطبع(مبدوء::الخطأ::الرسالة). أرجع 9. }
            // تعمل الملاحظات المأخوذة أيضا أثناء إطار رسم مفتوح.
            دع موضع = رايليب::موضع_الفأرة(). دع فرق = رايليب::تغير_موضع_الفأرة().
            إذا لا موضع::نجاح أو لا فرق::نجاح { أرجع 10. }
            دع ممسوح = رايليب::امسح_الخلفية(لون).
            إذا لا ممسوح::نجاح { اطبع(ممسوح::الخطأ::الرسالة). أرجع 11. }
            دع منته = رايليب::أنه_الرسم().
            إذا لا منته::نجاح { اطبع(منته::الخطأ::الرسالة). أرجع 12. }
            إطار = إطار + 1.
        }
        دع مغلق = رايليب::أغلق_النافذة().
        إذا لا مغلق::نجاح { اطبع(مغلق::الخطأ::الرسالة). أرجع 13. }
        أرجع 0.
    }
    

    اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.

    تنزيل نافذة-وإدخال.لبات

    النتائج المتوقعة
    {
      "native": {
        "check": 0,
        "status": 0,
        "behavior": {
          "en": "Left click or scroll selects maroon. Space also selects maroon, but a queued character, including a typed space, takes precedence and selects dark green. Each consumed character prints its Unicode scalar number. The first frame and resizes print logical screen and physical render dimensions. Escape or 180 frames ends the loop with status 0. Output depends on the host and input.",
          "ar": "يختار النقر الأيسر أو التمرير اللون العنابي. يختاره مفتاح المسافة أيضا، لكن يتقدم المحرف المنتظر في الطابور، بما فيه المسافة المكتوبة، ويختار الأخضر الداكن. يطبع كل محرف مستهلك رقم قيمة Unicode له. يطبع الإطار الأول وتغيير الحجم أبعاد الشاشة المنطقية والتصيير الفيزيائية. ينتهي التكرار بمفتاح الهروب أو بعد 180 إطارا بحالة 0. يعتمد الإخراج على المضيف والإدخال."
        }
      }
    }

    المصدر الإنجليزي

    المضيف الأصلي فقط · لبات 0.7.0 · مصدر إنجليزي

    التنفيذ: المضيف الأصلي فقط · لبات 0.7.0

    المتطلبات السابقة:
    • لبات 0.7.0 أصلي على Linux بمعمارية x86_64 وglibc 2.34 أو أحدث.
    • يحتاج التشغيل إلى شاشة Wayland/EGL أو X11/GLX متاحة وOpenGL 3.3 core. لا يحتاج إلى Raylib نظامي أو مترجم C. لا يحتاج الفحص والبناء إلى شاشة.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    // Run with: aspl run docs/examples/raylib/window-input.mixed.aspl
    // Type text, click or scroll to change color. Resize to print new dimensions.
    // Escape requests close. The demo also stops after 180 frames.
    import core::raylib;
    
    fn start_main() -> i64 {
        let flags = raylib::SetConfigFlags(raylib::FLAG_WINDOW_RESIZABLE);
        let pacing = raylib::SetTargetFPS(60);
        if not flags::ok or not pacing::ok { return 1; }
        let opened = raylib::InitWindow(640, 360, "ASPL input / إدخال رايليب");
        if not opened::ok { print(opened::error::message); return 2; }
        let exit_key = raylib::SetExitKey(raylib::KEY_ESCAPE);
        if not exit_key::ok { print(exit_key::error::message); return 3; }
        var frame: i64 = 0;
        var color = raylib::SKYBLUE;
        while frame < 180 {
            let closing = raylib::WindowShouldClose();
            if not closing::ok { print(closing::error::message); return 4; }
            if closing::value { return 0; }
            let clicked = raylib::IsMouseButtonPressed(raylib::MOUSE_BUTTON_LEFT);
            let pressed = raylib::IsKeyPressed(raylib::KEY_SPACE);
            let wheel = raylib::GetMouseWheelMove();
            if not clicked::ok or not pressed::ok or not wheel::ok { return 5; }
            if clicked::value or pressed::value or wheel::value not matches 0.0 { color = raylib::MAROON; }
            let typed = raylib::GetCharPressed();
            let key = raylib::GetKeyPressed();
            if not typed::ok or not key::ok { return 6; }
            if typed::value not matches 0 {
                color = raylib::DARKGREEN;
                print("Unicode / محرف: "); print(format_i64(i64(typed::value))); print("\n");
            }
            let resized = raylib::IsWindowResized();
            if not resized::ok { return 7; }
            if resized::value or frame matches 0 {
                let width = raylib::GetScreenWidth(); let height = raylib::GetScreenHeight();
                let render_width = raylib::GetRenderWidth(); let render_height = raylib::GetRenderHeight();
                if not width::ok or not height::ok or not render_width::ok or not render_height::ok { return 8; }
                print("Screen / شاشة: "); print(format_i64(i64(width::value))); print("x"); print(format_i64(i64(height::value)));
                print(" render="); print(format_i64(i64(render_width::value))); print("x"); print(format_i64(i64(render_height::value))); print("\n");
            }
            let begun = raylib::BeginDrawing();
            if not begun::ok { print(begun::error::message); return 9; }
            // Sampled observations also work in an open drawing frame.
            let position = raylib::GetMousePosition(); let delta = raylib::GetMouseDelta();
            if not position::ok or not delta::ok { return 10; }
            let cleared = raylib::ClearBackground(color);
            if not cleared::ok { print(cleared::error::message); return 11; }
            let ended = raylib::EndDrawing();
            if not ended::ok { print(ended::error::message); return 12; }
            frame = frame + 1;
        }
        let closed = raylib::CloseWindow();
        if not closed::ok { print(closed::error::message); return 13; }
        return 0;
    }
    

    اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.

    تنزيل window-input.aspl

    النتائج المتوقعة
    {
      "native": {
        "check": 0,
        "status": 0,
        "behavior": {
          "en": "Left click or scroll selects maroon. Space also selects maroon, but a queued character, including a typed space, takes precedence and selects dark green. Each consumed character prints its Unicode scalar number. The first frame and resizes print logical screen and physical render dimensions. Escape or 180 frames ends the loop with status 0. Output depends on the host and input.",
          "ar": "يختار النقر الأيسر أو التمرير اللون العنابي. يختاره مفتاح المسافة أيضا، لكن يتقدم المحرف المنتظر في الطابور، بما فيه المسافة المكتوبة، ويختار الأخضر الداكن. يطبع كل محرف مستهلك رقم قيمة Unicode له. يطبع الإطار الأول وتغيير الحجم أبعاد الشاشة المنطقية والتصيير الفيزيائية. ينتهي التكرار بمفتاح الهروب أو بعد 180 إطارا بحالة 0. يعتمد الإخراج على المضيف والإدخال."
        }
      }
    }

    المصدر المختلط

    المضيف الأصلي فقط · لبات 0.7.0 · مصدر مختلط

    التنفيذ: المضيف الأصلي فقط · لبات 0.7.0

    المتطلبات السابقة:
    • لبات 0.7.0 أصلي على Linux بمعمارية x86_64 وglibc 2.34 أو أحدث.
    • يحتاج التشغيل إلى شاشة Wayland/EGL أو X11/GLX متاحة وOpenGL 3.3 core. لا يحتاج إلى Raylib نظامي أو مترجم C. لا يحتاج الفحص والبناء إلى شاشة.

    الإدخال: لا يحتاج إلى أسطر إدخال.

    // Run with: aspl run docs/examples/raylib/window-input.mixed.aspl
    // Type text, click or scroll to change color. Resize to print new dimensions.
    // Escape requests close. The demo also stops after 180 frames.
    import core::raylib;
    استورد أساسي::رايليب.
    
    fn start_main() -> i64 {
        let flags = raylib::SetConfigFlags(رايليب::FLAG_WINDOW_RESIZABLE);
        let pacing = رايليب::اضبط_معدل_الإطارات(60);
        if not flags::ok or not pacing::ok { return 1; }
        let opened = رايليب::هيئ_نافذة(640, 360, "ASPL input / إدخال رايليب");
        if not opened::ok { print(opened::error::message); return 2; }
        let exit_key = raylib::اضبط_مفتاح_الخروج(رايليب::KEY_ESCAPE);
        if not exit_key::ok { print(exit_key::error::message); return 3; }
        var frame: i64 = 0;
        var color = raylib::SKYBLUE;
        while frame < 180 {
            let closing = raylib::هل_يجب_إغلاق_النافذة();
            if not closing::ok { print(closing::error::message); return 4; }
            if closing::value { return 0; }
            let clicked = رايليب::IsMouseButtonPressed(raylib::MOUSE_BUTTON_LEFT);
            let pressed = raylib::هل_ضغط_المفتاح(رايليب::KEY_SPACE);
            let wheel = raylib::حركة_عجلة_الفأرة();
            if not clicked::ok or not pressed::ok or not wheel::ok { return 5; }
            if clicked::value or pressed::value or wheel::value not matches 0.0 { color = raylib::MAROON; }
            let typed = رايليب::المحرف_المدخل();
            let key = raylib::GetKeyPressed();
            if not typed::ok or not key::ok { return 6; }
            if typed::value not matches 0 {
                color = رايليب::DARKGREEN;
                print("Unicode / محرف: "); print(format_i64(i64(typed::value))); print("\n");
            }
            let resized = raylib::هل_تغير_حجم_النافذة();
            if not resized::ok { return 7; }
            if resized::value or frame matches 0 {
                let width = رايليب::عرض_الشاشة(); let height = raylib::GetScreenHeight();
                let render_width = raylib::عرض_التصيير(); let render_height = رايليب::GetRenderHeight();
                if not width::ok or not height::ok or not render_width::ok or not render_height::ok { return 8; }
                print("Screen / شاشة: "); print(format_i64(i64(width::value))); print("x"); print(format_i64(i64(height::value)));
                print(" render="); print(format_i64(i64(render_width::value))); print("x"); print(format_i64(i64(render_height::value))); print("\n");
            }
            let begun = raylib::ابدأ_الرسم();
            if not begun::ok { print(begun::error::message); return 9; }
            // Sampled observations also work in an open drawing frame.
            let position = رايليب::موضع_الفأرة(); let delta = raylib::GetMouseDelta();
            if not position::ok or not delta::ok { return 10; }
            let cleared = raylib::امسح_الخلفية(color);
            if not cleared::ok { print(cleared::error::message); return 11; }
            let ended = رايليب::EndDrawing();
            if not ended::ok { print(ended::error::message); return 12; }
            frame = frame + 1;
        }
        let closed = raylib::أغلق_النافذة();
        if not closed::ok { print(closed::error::message); return 13; }
        return 0;
    }
    

    اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.

    تنزيل window-input.mixed.aspl

    النتائج المتوقعة
    {
      "native": {
        "check": 0,
        "status": 0,
        "behavior": {
          "en": "Left click or scroll selects maroon. Space also selects maroon, but a queued character, including a typed space, takes precedence and selects dark green. Each consumed character prints its Unicode scalar number. The first frame and resizes print logical screen and physical render dimensions. Escape or 180 frames ends the loop with status 0. Output depends on the host and input.",
          "ar": "يختار النقر الأيسر أو التمرير اللون العنابي. يختاره مفتاح المسافة أيضا، لكن يتقدم المحرف المنتظر في الطابور، بما فيه المسافة المكتوبة، ويختار الأخضر الداكن. يطبع كل محرف مستهلك رقم قيمة Unicode له. يطبع الإطار الأول وتغيير الحجم أبعاد الشاشة المنطقية والتصيير الفيزيائية. ينتهي التكرار بمفتاح الهروب أو بعد 180 إطارا بحالة 0. يعتمد الإخراج على المضيف والإدخال."
        }
      }
    }

    الأوامر والنتائج

    شغّل من المجلد الذي يحتوي شجرة docs/ المنزلة. احتفظ بالملف المرافق .THIRD-PARTY-NOTICES عند توزيع برنامج ELF. لا يفتح الفحص والبناء نافذة. يحتاج التشغيل إلى متطلبات الرسوم المذكورة.

    ar:

    aspl check docs/examples/raylib/نافذة-وإدخال.لبات
    aspl run docs/examples/raylib/نافذة-وإدخال.لبات
    aspl build -o raylib-window-input-ar-program docs/examples/raylib/نافذة-وإدخال.لبات
    ./raylib-window-input-ar-program

    en:

    aspl check docs/examples/raylib/window-input.aspl
    aspl run docs/examples/raylib/window-input.aspl
    aspl build -o raylib-window-input-en-program docs/examples/raylib/window-input.aspl
    ./raylib-window-input-en-program

    mixed:

    aspl check docs/examples/raylib/window-input.mixed.aspl
    aspl run docs/examples/raylib/window-input.mixed.aspl
    aspl build -o raylib-window-input-mixed-program docs/examples/raylib/window-input.mixed.aspl
    ./raylib-window-input-mixed-program

    مجموعة Raylib.

    النشر ومتطلبات المضيف.

    تصفح الصفحات