مقدمة في SFML: ما هو ولماذا تحتاجه
\n\nSFML (مكتبة الوسائط المتعددة البسيطة والسريعة) هي مكتبة وسائط متعددة متعددة المنصات للغات C++ و C، مصممة لتطوير الألعاب والتطبيقات الرسومية والبرامج التفاعلية. توفر للمطورين واجهة بسيطة وبديهية للعمل مع الرسومات والصوت والشبكة والنوافذ والإدخال من لوحة المفاتيح/الفأرة.
\n\nSFML هو الخيار الأمثل للمطورين المبتدئين وذوي الخبرة الذين يرغبون في إنشاء ألعاب وتطبيقات ثنائية الأبعاد بسرعة دون الحاجة إلى التعمق في واجهات برمجة التطبيقات منخفضة المستوى مثل OpenGL أو DirectX. تقوم المكتبة بتجريد التفاصيل المعقدة للعمل مع الأجهزة الرسومية، مع توفير مرونة كافية لتنفيذ التأثيرات المتقدمة.
\n\nالإمكانيات الرئيسية لـ SFML:
\n- \n
- الرسومات: عرض الصور ثنائية الأبعاد والأشكال والنصوص والأنسجة بتسريع الأجهزة. \n
- النوافذ والإدخال: إنشاء النوافذ، معالجة أحداث الفأرة ولوحة المفاتيح وعصا التحكم. \n
- الصوت: تشغيل الأصوات والموسيقى بتنسيقات WAV و OGG و FLAC. \n
- الشبكة: العمل مع مآخذ TCP/UDP وطلبات HTTP و FTP. \n
- الأدوات النظامية: العمل مع الوقت والخيوط والملفات والسلاسل النصية. \n
يتم توزيع SFML بموجب ترخيص zlib/png، مما يسمح باستخدامها في المشاريع التجارية دون قيود. تدعم المكتبة أنظمة Windows و Linux و macOS وبعض المنصات المحمولة.
\n\nتثبيت SFML
\n\nعلى عكس Python، لا يوجد أمر واحد pip install لـ C++. يتطلب تثبيت SFML إعدادًا يدويًا اعتمادًا على نظام التشغيل وبيئة التطوير المتكاملة (IDE) الخاصة بك.
التثبيت على Windows (Visual Studio)
\n- \n
- قم بتنزيل أحدث إصدار من SFML من الموقع الرسمي sfml-dev.org (اختر الإصدار الخاص بـ Visual C++). \n
- قم بفك ضغط الأرشيف في مكان مناسب، مثل
C:\\SFML. \n - افتح Visual Studio، وأنشئ مشروع C++ جديد. \n
- انتقل إلى Project → Properties:\n
- \n
- C/C++ → General → Additional Include Directories: أضف
C:\\SFML\\include. \n - Linker → General → Additional Library Directories: أضف
C:\\SFML\\lib. \n - Linker → Input → Additional Dependencies: أضف
sfml-graphics.lib; sfml-window.lib; sfml-system.lib(لإصدار Debug استخدمsfml-graphics-d.libوهكذا). \n
\n - C/C++ → General → Additional Include Directories: أضف
- انسخ ملفات DLL من
C:\\SFML\\binإلى المجلد الذي يحتوي على ملفك القابل للتنفيذ. \n
التثبيت على Linux (Ubuntu/Debian)
\nsudo apt update\nsudo apt install libsfml-dev\nللتجميع، استخدم أعلام الربط:
\ng++ main.cpp -o app -lsfml-graphics -lsfml-window -lsfml-system\n\nالتثبيت على macOS (Homebrew)
\nbrew install sfml\nالتجميع:
\ng++ main.cpp -o app -I/usr/local/include -L/usr/local/lib -lsfml-graphics -lsfml-window -lsfml-system\n\nبداية سريعة: أول برنامج في SFML
\n\nلنقم بإنشاء نافذة بسيطة بدائرة خضراء. يوضح هذا المثال البنية الأساسية لأي تطبيق SFML: إنشاء نافذة، حلقة اللعبة، ومعالجة الأحداث.
\n\n#include <SFML/Graphics.hpp>\n\nint main() {\n // إنشاء نافذة بحجم 800x600 بكسل مع عنوان "SFML App"\n sf::RenderWindow window(sf::VideoMode(800, 600), "SFML App");\n\n // إنشاء دائرة نصف قطرها 50 بكسل\n sf::CircleShape circle(50.0f);\n circle.setFillColor(sf::Color::Green); // لون أخضر\n circle.setPosition(375.0f, 275.0f); // الموضع في وسط النافذة\n\n // حلقة اللعبة الرئيسية\n while (wind