در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

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

سلام خدمت دوستان عزیز

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

SFML چیست؟

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

واسطی است که 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;
}

نتیجه آن به صورت زیر خواهد بود:

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

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

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

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) کشیدن نقشه بازی مورد نظرمان که توسط آرایه های خاصی که ارائه شده است.

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

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

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

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

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

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

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

4.ماژول Audio :

a) پخش صدا و موزیک با استفاده از کلاس های sf::Sound و sf::Music

record (b کردن صدا

5.ماژول Network:

a) برقراری ارتباط از طریق Socket(مثلا نوشتن برنامه چت)

b) استفاده و کار با Packet ها

c) کار با request های سرور های ftp و http

آشنایی بیشتر و یادگیری SFML

موفق باشید.

#نوشتن_برنامه_چت_شبکه #نوشتن_بازی_در_c++ #برنامه_نویسی_گرافی #کتابخانه_sfml #نوشتن_برنامه_گرافیکی #برنامه_نویسی_گرافیکی_در_c #نوشتن_برنامه_برای_شبکه #برنامه_نویسی_گرافیکی_در_c++
0 نظر

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

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....