۱۷ مطلب با کلمه‌ی کلیدی «SDL1.2» ثبت شده است

به دست آوردن رزولوشن صفحه نمایش با SDL1.2

سلام!

این جلسه می خواهیم ابعاد صفحه نمایش را به دست آورده و متناسب با آن، یک پنجره ایجاد کنیم.

برای این کار باید از تابع SDL_GetVideoInfo استفاده کنیم.

const SDL_VideoInfo *SDL_GetVideoInfo();

این تابع برخی از مشخّصات مربوط به توانایی سیستم را در کارهای گرافیکی برمی گرداند. خروجی این تابع یک اشاره گر از نوع SDL_VideoInfo است.

const SDL_VideoInfo *videoInfo = SDL_GetVideoInfo();

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

پاسخ تمرین سری قبل

سلام!

پاسخ تمرین سری قبل را می توانید در کد زیر مشاهده کنید.

۰ نظر موافقین ۱ مخالفین ۰
روزبه صیادی

Handle کردن event های مربوط به ماوس با SDL1.2

سلام!

جلسه ی پیش با event مربوط به بسته شدن پنجره آشنا شدیم. این جلسه می خواهیم با event های مربوط به ماوس آشنا شویم.

اوّلین event ای که می خواهیم با آن آشنا شویم، event مربوط به فشردن یکی از دکمه های ماوس است. اگر event.type برابر با SDL_MOUSEBUTTONDOWN باشد، یعنی یکی از دکمه های ماوس فشرده شده است. برای این که بفهمید کدام یکی از دکمه ها فشرده شده است، از مقدار موجود در event.button.button استفاده کنید. مثل برنامه ی زیر؛

if ( event.type == SDL_MOUSEBUTTONDOWN ){
    if ( event.button.button == SDL_BUTTON_LEFT )
        cout << "Left Button is Down" << endl;
    if ( event.button.button == SDL_BUTTON_RIGHT )
        cout << "Right Button is Down" << endl;
    if ( event.button.button == SDL_BUTTON_MIDDLE )
        cout << "Middle button is Down" << endl;
}

۱ نظر موافقین ۱ مخالفین ۰
روزبه صیادی

بستن پنجره ی SDL1.2 به درخواست کاربر

سلام!

جلسه ی پیش با event ها در SDL1.2 آشنا شدید. در این جلسه می خواهیم با کمک همین event ها، ببینیم که آیا کاربر دکمه ی بسته شدن پنجره را زده است یا نه.

هر event ای درون خود یک type دارد.

event.type

در این جا نوع event اتفاق افتاده مشخّص می شود. مثلا اگر کاربر اقدام به بستن پنجره کرده باشد، type این event برابر با SDL_QUIT خواهد بود.

if ( event.type == SDL_QUIT )
    closeProgram();

۲ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

به دست آوردن زمان با SDL1.2

سلام!

این جلسه می خواهیم با دستور های موجود در SDL1.2 یک Timer بنویسیم. اوّل از همه با تابع زیر آشنا شوید؛

Uint32 SDL_GetTicks();

این تابع مقدار زمانی را که از Initialize کردن SDL می گذرد را در قالب میلی ثانیه برمی گرداند. پس دقت داشته باشید که اگر خروجی این تابع مقداری منفی یا نامربوط بود، حتما SDL را Initialize نکرده اید.

خب، حالا می خواهیم Timer را پیاده سازی کنیم.

۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

Load کردن فرمت های دیگر عکس با SDL1.2

سلام!

در جلسات پیش با طرز load کردن یک عکس BMP بر روی یک *SDL_Surface آشنا شدید. این جلسه می خواهیم طرز load کردن بیشتر فرمت های عکس آشنا شویم.

برای این کار ابتدا باید SDL_image.h را include کنید؛

#include "SDL/SDL_image.h"
۰ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

اوّلین برنامه با SDL1.2 - قسمت سوم

سلام!

این مطلب،‌ آخرین مطلب این سری آموزش ها خواهد بود؛ از جلسه ی بعد وارد مبحث جدیدی از SDL می شویم.

در مطلب های پیش، با چگونگی ساخت پنجره با SDL و هم چنین کپی کردن یک عکس روی صفحه آشنا شدیم. در این مطلب می خواهیم روش درست اتمام برنامه های SDL را آموزش دهیم.

تا این جا این کد را نوشته ایم.

بعد از این که کارتان با SDL تمام شد، اوّلین کاری که باید انجام دهید، Free کردن *SDL_Surface هایتان است.

۲ نظر موافقین ۰ مخالفین ۰
روزبه صیادی