درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من
صندوق پیام
همه را دیدم تنظیمات
  • در حال دریافت لیست پیام ها
صندوق پیام
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
جدیدترین ویدیوها

معرفی واسط گرافیکی SFML برای نوشتن بازی و برنامه های مولتی مدیا

0 نظرات
سلام خدمت دوستان عزیز
در این آموزش میخوایم با یکی از کتابخانه های گرافیکی برای زبان های برنامه نویسی معروف که SFML نامیده میشه آشنا بشیم:


SFML چیست؟

Image

واسطی است که component های مختلفی رو برای سیستم شما فراهم می کنه که با اون نوشتن برنامه های گرافیکی و بازی برای برنامه نویس ها راحت تر هست و از پنج ماژول تشکیل شده : system،window،graphics،audio و network
SFML به صورت Multi-platform ارائه شده است و بر روی سیستم عامل های Windows،Linux،Mac OS x قابل اجرا است و بزودی بر روی سیستم عامل Android و IOS قابل اجرا خواهدبود.
همچنین این واسط به طور ویژه برای زبان های برنامه نویسی C و NET. ارائه شده و هم اکنون زبان های دیگر مثل JAVA و Python و... هم از این واسط بهره می برند.

برای شروع :

طبق Editor خاصی که استفاده می کنید باید تنظیمات SFML رو روی ادیتور انجام بدین.(از قبیل کپی کردن فایل های dll در فولدر پروژه،شناسایی فایل های کتابخانه به برنامه و...)
برای مشاهده نحوه تنظیمات به لینک های زیر مراجعه کنید:
SFML و Visual Studio
SFML و Code
SFML و Linux
SFML و XCode

مثال: کشیدن یک دایره در Visual Studio:

بعد از انجام دادن تنظیمات در Visual Studio برای مثال به کشیدن یک دایره می پردازیم
کد مورد نظر برای ما این کار را انجام می دهد:
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}
نتیجه آن به صورت زیر خواهد بود:
Image

دیدید که چقدر راحت با استفاده از این واسط،این کار قابل انجام هست.

توضیح مختصر ماژول ها:

1.ماژول System :
a)در این ماژول می تونیم کار هایی از قبیل handle کردن time رو انجام بدیم(مثلا ریستارت کردن بازی بعد از مدتی یا بعد از یک event خاص) و همچنین محاسبات زمانی خاص-تبدیلات زمانی و...
b)یکی دیگه از قابلیت های این ماژول،کار با Thread ها است.همونطور که می دونین برای اجرای چندین عمل هم زمان باید از Thread توی برنامه مون استفاده کنیم.مثلا حرکت کردن چندین Object و انجام شدن چند رویداد در آن واحد و... این قابلیت در نوشتن بازی ها نمود بیشتری پیدا می کنه و خیلی استفاده میشه.
c) قابلیت دیگه ای که در ماژول System گنجانده شده،User Data Stream هست.اگر برنامه ی مورد نظر ما نیاز به load شدن عکس،یا صدا و یا فونت از فایل خاصی داشته باشه،این قابلیت به ما کمک می کنه تا این کار رو انجام بدیم.تابعی که این کار رو برای ما انجام میده تابع loadFromFile هست.حتی این قابلیت وجود داره که بصورت مستقیم از حافظه با تابع loadFromMemory این کار رو انجام داد.
2.ماژول Windows :
a) نحوه ایجاد Window جدید در SFML و کنترل کردن آن
b) کار با Event ها : یکی از قسمت های مهم این ماژول است که در اون می تونیم با رویداد های مختلفی مثل فشرده شدن یا رها شدن دکمه های کیبورد،ماوس و همچنین کار با joystick مواجه بشیم.
c) کار با کتابخانه قدرتمند OpenGL در پروژه SFML هم در این ماژول فراهم شده.
3.ماژول Graphics :
a) کشیدن چیز های دو بعدی و نمایش Texture
b) کشیدن نقطه،خط،اشکال هندسی منظم مانند مثلث و مربع و دیگر اشکال هندسی که در کلاس های sf::Quads ، sf::Triangles ، sf::Lines ، sf::Points این قابلیت ها گنجانده شده.
c) کشیدن نقشه بازی مورد نظرمان که توسط آرایه های خاصی که ارائه شده است.
Image

d) دادن position ، scale و rotate کردن عکس یا text مورد نظر
Image

e) کنترل کردن نمایش تصویر دوبعدی با استفاده از کلاس sf::View
Image

بعد از حرکت روی entity مورد نظر:
Image

4.ماژول Audio :
a) پخش صدا و موزیک با استفاده از کلاس های sf::Sound و sf::Music
record (b کردن صدا
5.ماژول Network:
a) برقراری ارتباط از طریق Socket(مثلا نوشتن برنامه چت)
b) استفاده و کار با Packet ها
c) کار با request های سرور های ftp و http
آشنایی بیشتر و یادگیری SFML

موفق باشید.
برچسب ها
مطالب مرتبط
نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید

    arrow