رسم الأشكال عبر كاميرا2
لبات 0.7.0 · الإصدار الحالي
المضيف الأصلي فقط. يعرض البرنامج حتى 20 إطارا فيها مستطيل مدور ودائرة وخط سميك ومثلث بإحداثيات الكاميرا. تستخدم نقطة وإطار حدود إحداثيات الشاشة بعد EndMode2D. يطبع النجاح camera shapes complete دون سطر جديد ويعيد 0.
محتويات الصفحة
تجهيز المضيف الأصلي
المضيف الأصلي فقط، لبات 0.7.0 المنشور. يعرض البرنامج حتى 20 إطارا فيها مستطيل مدور ودائرة وخط سميك ومثلث بإحداثيات الكاميرا. تستخدم نقطة وإطار حدود إحداثيات الشاشة بعد EndMode2D. يطبع النجاح camera shapes complete دون سطر جديد ويعيد 0.
التثبيت الأصلي · دليل الرسم والإدخال · مرجع الواجهة.
لا يحتاج إلى وحدات مصدر أو ملفات بيانات.
لغة الصفحة مستقلة عن مفردات المصدر. نزّل الصيغ الموردة فقط بأسمائها الأصلية. تحمل البرامج ذات الصيغة المختلطة وحدها هذا الوصف في اللغتين، دون توليد ترجمة للمصدر.
المصدر المختلط
التنفيذ: المضيف الأصلي فقط · لبات 0.7.0
- لبات 0.7.0 أصلي على Linux بمعمارية x86_64 وglibc 2.34 أو أحدث.
- يحتاج التشغيل إلى شاشة Wayland/EGL أو X11/GLX متاحة وOpenGL 3.3 core. لا يحتاج إلى Raylib نظامي أو مترجم C. لا يحتاج الفحص والبناء إلى شاشة.
الإدخال: لا يحتاج إلى أسطر إدخال.
لا يتوفر مصدر عربي. المعروض هو مصدر مختلط كما ورد؛ لم تُترجم الشفرة.
import core::raylib;
استورد أساسي::رايليب.
fn start_main() -> i64 {
if not raylib::InitWindow(640, 360, "ASPL Camera2D shapes")::ok { return 1; }
let camera = رايليب::كاميرا2 {
إزاحة: raylib::Vector2 { x: 320.0, y: 180.0 },
هدف: raylib::Vector2 { x: 0.0, y: 0.0 }, دوران: 15.0, تكبير: 1.5
};
if not raylib::SetTargetFPS(60)::ok { return 2; }
var frame: i32 = 0;
while frame < 20 and not raylib::WindowShouldClose()::value {
if not raylib::BeginDrawing()::ok { return 3; }
if not رايليب::امسح_الخلفية(raylib::RAYWHITE)::ok { return 4; }
if not raylib::BeginMode2D(camera)::ok { return 5; }
if not raylib::DrawRectanglePro(raylib::Rectangle { x: -100.0, y: -50.0, width: 80.0, height: 60.0 },
raylib::Vector2 { x: 40.0, y: 30.0 }, 20.0, raylib::BLUE)::ok { return 6; }
if not raylib::DrawCircleV(raylib::Vector2 { x: 50.0, y: 0.0 }, 35.0, raylib::RED)::ok { return 7; }
if not raylib::DrawLineEx(raylib::Vector2 { x: -150.0, y: 70.0 }, raylib::Vector2 { x: 150.0, y: 70.0 }, 4.0, raylib::DARKGRAY)::ok { return 8; }
if not raylib::DrawTriangle(raylib::Vector2 { x: 100.0, y: -60.0 }, raylib::Vector2 { x: 100.0, y: 0.0 },
raylib::Vector2 { x: 150.0, y: 0.0 }, raylib::GREEN)::ok { return 9; }
if not raylib::EndMode2D()::ok { return 10; }
if not raylib::DrawPixel(10, 10, raylib::BLACK)::ok { return 11; }
if not raylib::DrawRectangleLines(5, 5, 630, 350, raylib::GRAY)::ok { return 12; }
if not raylib::EndDrawing()::ok { return 13; }
frame = frame + 1;
}
if not raylib::CloseWindow()::ok { return 14; }
print("camera shapes complete");
return 0;
}
اتبع تعليمات Linux لتنفيذ هذا المثال. نزّل المصدر لحفظه.
تنزيل raylib-shapes.mixed.asplالنتائج المتوقعة
{
"native": {
"check": 0,
"status": 0,
"output": "camera shapes complete",
"behavior": {
"en": "Up to 20 frames show a rotated rectangle, circle, thick line and triangle in camera coordinates. A pixel and border use screen coordinates after EndMode2D. Success prints camera shapes complete without a trailing newline and returns 0.",
"ar": "يعرض البرنامج حتى 20 إطارا فيها مستطيل مدور ودائرة وخط سميك ومثلث بإحداثيات الكاميرا. تستخدم نقطة وإطار حدود إحداثيات الشاشة بعد EndMode2D. يطبع النجاح camera shapes complete دون سطر جديد ويعيد 0."
}
}
}الأوامر والنتائج
شغّل من المجلد الذي يحتوي شجرة docs/ المنزلة. احتفظ بالملف المرافق .THIRD-PARTY-NOTICES عند توزيع برنامج ELF. لا يفتح الفحص والبناء نافذة. يحتاج التشغيل إلى متطلبات الرسوم المذكورة.
mixed:
aspl check docs/examples/raylib-shapes.mixed.aspl
aspl run docs/examples/raylib-shapes.mixed.aspl
aspl build -o raylib-shapes-mixed-program docs/examples/raylib-shapes.mixed.aspl
./raylib-shapes-mixed-program