- •Введение. Работа с клавиатурой и дисплеем
- •3. Подключение и инициализация библиотеки SDL
- •4. Графические примитивы библиотеки SDL_draw
- •5. Рисование сложных фигур
- •6. Работа с поверхностями в библиотеке SDL
- •7. Имитация движения при выводе на дисплей
- •8. Вывод текста с помощью библиотеки SDL_ttf
- •9. Обработка событий средствами библиотеки SDL
- •10. Построение графиков функций на дискретных устройствах отображения информации
- •Библиографический список
if (_ef && !_exp && !_minusEf) _ef=0; //удаление символа exp
else
if (_ef && !_exp && _minusEf) _minusEf=0; //удаление минуса после exp else
if (_ef && _exp<=EXP)
_exp=_exp-1; //удаление цифры в степени // Смещаемся на 20 пикселей влево (одно "знакоместо")
x-=20;
//Затираем знакоместо черным цветом
Draw_FillRect(who_draw,x,y,20,42,0);
//Обновляем экран
SDL_UpdateRect(who_draw,0,0,width,height); _kol=_kol-1; /* Уменьшаем число символов */ continue; /*Продолжаем ожидание событий */
}
if(event.key.keysym.sym==SDLK_MINUS && ((!_minusf && !_whole && !_ef) || (!_minusEf && _ef && !_exp)))
{
OutSymbolFntColorXY(who_draw, fnt, color, x,y,SDLK_MINUS); x+=20; s[++_kol]=45;
if (!_minusf && !_whole && !_ef) _minusf=1;
else _minusEf=1;
continue;
}
if (event.key.keysym.sym==SDLK_PERIOD && !*pointf && !_ef){ if (!_whole){
s[++_kol]=48; _whole=1; OutSymbolFntColorXY(who_draw,fnt,color,x,y,SDLK_0);
}
s[++_kol]=46;
OutSymbolFntColorXY(who_draw, fnt, color,x,y,SDLK_PERIOD); x+=20;
_pointf=1; continue;
}
if (event.key.keysym.sym==SDLK_e && !_ef){ OutSymbolFntColorXY(who_draw, fnt, color,x,y,SDLK_e);
x+=20; s[++_kol]=101; _ef=1; continue;
}
if (event.key.keysym.sym==SDLK_RETURN && _kol!=-1)
{/* Завершение ввода */ double tmp;
s[_kol+1]='\0';
sscanf(s,"%lf",&tmp); /*Отсутствует проверка ввода! */ return tmp;
}
if (event.key.keysym.sym == SDLK_ESCAPE)
/* Будет возвращено значение по умолчанию. */ break;
} /* Конец обработки события SDL_KEYDOWN */
}/* Конец цикла обработки событий */
return defval;
} /* конец тела функции input_double */
Библиографический список
69
1.Керниган, Брайен, Ритчи, Деннис. Язык программирования C. 2-е изд.: пер. с англ. М.: Изд. дом «Вильямс»,
2013. 304 с.
2.SDL Library Documentation. URL: www.libsdl.org/release/SDL-1.2.15/docs/ html/index.html (дата обращения: 28.11.2013).
70
|
О Г Л А В Л Е Н И Е |
|
Введение. Работа с клавиатурой и дисплеем ............................................................. |
3 |
|
1. |
Основные возможности библиотеки семейства SDL............................................. |
8 |
2. |
Начало работы с SDL 1.2.15, SDL_draw 1.2.13 и SDL_ttf 2.0.11 в интегри-рованной среде разработки Dev-Cpp |
|
|
4.9.9.2 под управлением Windows XP ................................................................... |
9 |
3. |
Подключение и инициализация библиотеки SDL ................................................ |
13 |
4. |
Графические примитивы библиотеки SDL_draw ................................................. |
17 |
5. |
Рисование сложных фигур ..................................................................................... |
19 |
6. |
Работа с поверхностями в библиотеке SDL .......................................................... |
30 |
7. |
Имитация движения при выводе на дисплей ........................................................ |
38 |
8. |
Вывод текста с помощью библиотеки SDL_ttf ..................................................... |
43 |
9. |
Обработка событий средствами библиотеки SDL................................................ |
46 |
10. Построение графиков функций на дискретных устройствах отображения информации 51 |
||
П р и л о ж е н и е 1. Примеры наложения поверхностей ....................................... |
53 |
|
П р и л о ж е н и е 2. Примеры работы со шрифтами.............................................. |
57 |
|
П р и л о ж е н и е 3. Примеры построения графика функции с использова-нием библиотеки SDL 61 |
||
Библиографический список......................................................................................... |
69 |
Гущин Артем Николаевич
Применение библиотеки SDL для разработка программ
на языке C
Редактор Г.М. Звягина
Корректор Л.А. Петрова Подписано в печать 9.10.2014. Формат бумаги 60х84/16. Бумага документная.
Печать трафаретная. Усл. печ. л. 6,85. Тираж 100 экз. Заказ № 150. Балтийский государственный технический университет Типография БГТУ
190005, С.-Петербург, 1-я Красноармейская ул., д.1