Аннотация
«Бәйге ойыны бағдарламасын жасау» тақырыбындағы берілген курстық жұмыста
Мақсатым ойын-бағдарламасын жазу болды, мұнда тышқанның көмегімен экранда
Алдымен main() функциясы жасалды, бұл функцияда msinit() функциясы
Мазмұны
Кіріспе......................................................................................................................5
1Графика және анимация.......................................................................................6
1.1 Режимдік функциялар......................................................................................6
1.2 Анимация құру................................................................................................13
2 Бағдарламаны жобалау......................................................................................18
2.1 Ойынның құрастырылу әдісі..........................................................................18
2.2 Бағдарламаның алгоритмі.............................................................................18
3 Құжаттау..............................................................................................................19
3.1 Қолданушыға нұсқау.......................................................................................19
3.2 Бағдарламаушыға нұсқау................................................................................19
Қорытынды............................................................................................................20
Қолданылған әдебиеттер тізімі............................................................................21
Қосымша ...............................................................................................................22
Кіріспе
Өткен ғасырдың орта кездерінде есептеуіш техника саласында күрделі
1972 жылы AT&T атаулы Американың корпорациясы жаңа C
Тілге жылдам орындалатын, жеке биттермен операция жасайтын операторлар
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе
C++ тілі де процедуралық тіл, бірақ онда ОБП
объект - құрылымы класс типі арқылы сипатталатын айнымалы;
оқиға - объект жағдайының өзгеруі; қасиеттер - объект
класс - пайдаланушы анықтайтын тип. Тип қасиеттер мен
1 ГРАФИКА ЖӘНЕ АНИМАЦИЯ
Режімдік функциялар
Turbo C жғне C++ тілдерінде графикалық режімге µтіп,
Графикалық режім EGA, VGA, SVGA адаптерлерінде т‰рлі-т‰рлі. Мысалы,
Графикалық режімде ж±мыс істеу функциялары:
1. Драйвер мен графикалық режімді тандау: detectgraph (&gd,
2. Драйверді ж‰ктеу жғне графикалық ж‰йені инициалдау:
initgraph (&gd, &gm, "BGI файлына жол");
М±ндаѓы gd - қажетті драйвер нµмірі, gd=GraphDriver; gm
Егер BGI файлдары ағымдық каталогта бар болса, программада
initgraph (&gd, &gm, " ");
3. Қате жаѓдайды тексеру функциясы: graphresult ();
Егер программа д±рыс қосылса, онда қате коды =
Сонымен, графиктік режімді іске қосу ‰шін программа басын
#include
#include #include
#include main ()
// м±ны кµп жаѓдайда // енгізбеуге де болады
{
int gd, gm, error;
defectgraph (&gd, &gm); initgraph (&gd, &gm, "");
era>r=graphresult();
//(error!=grOK)
{ puts ("графика катесі"); exit (1); }
Ескерту. Компьютерде режімніњ д±рыс істейтініне сенімді болсањыз, графиктік
Т‰сті орнату
Graphics файлында анықталѓан т‰стік палитралар (барлығы 16,
12 т‰с
Т‰с аты Код Казақша аты
BLACK 0 қара
BLUE 1 кµк
GREEN 2 жасыл-кµк
GRAY 3 с±р
RED 4 қызыл
MAGENTA 5 қызыл курең
BROWN 6 қоњыр
LIGHT GRAY 7 ашық қоныр
LIGHT GREEN 10 ашық кµк
LIGHT RED 12 ашык қызыл
YELLOW 14 сары
WHITE 15 ақ
Фон т‰сін орнату функциясы: setbkcolor (т‰с);
Tүc ‰шін оныњ латынша атын не кодын енгізуге
Сызылатын кескіндер мен жазылатын мғтін т‰сін орнату:
setcolor (т‰с);
Геометриялық объектініњ µзгешілігі мен қалыњдыѓын орнату:
setlinestyle (т‰р, ‰лгі, қалындық);
М±ндаѓы т‰р кодтары:
0 SOLID_LINE (т±тас)
1 DOTTED_LINE (н‰ктелерден туратын)
2 CENTER_LINE (н‰ктелер мен сызықшалардан)
3 PASHED_LINE (пунктирлермен)
4 USERBIT_LINE (пайдаланушы анықтайтын);
Қалыңдық:
1 NORM_WIDTH (бір пиксельдік сызық)
3 THICK_WIDTH (‰ш пиксельдік сызық)
‡лгі параметрі т‰р коды 4-ке етіп ашылѓанда ғана
Т±йық облысты бояу ‰шін арналѓан функциялар:
a1) setfillstyle (бояу типі, т‰с);
М±ндаѓы бояу типініњ негізгі кодтары мен атаулары:
0 EMPTY_ҒILL фон т‰сімен бояу
1 SOLID_ҒILL кµрсетілген т‰спен т±тас толтыру
3 LTSLASH_ҒILL кµлбеу сызықтармен штрихтау
a2) floodfill(x, y, т‰с);
(x, y) — т±йық облыс ішінде жататын н‰кте,
Экранды тазалау (орнатылѓан параметрлерді алып тастап, алѓашқы графикалық
cleardevice ();
Берілген графикалық режімде н‰ктелер координаттарыныњ ең ‰лкен мғндерін
getmaxx (); - кµлденеңі бойынша, getmaxy (); -
Графикалық экранды тазалау: clearviewport ():
Ағымдық координаттарды анықтау: getx(); gety();
Графикалық режімде жадты тазалап, алѓашқы мғтіндік режімге µту:
closegraph ();
Графикалық экран ішінде терезе ашу:
setviewport (xl, yl, x2, y2, clip);
-(xl, yl), (x2, y2) - терезеніњ сғйкес сол
clip - кесіп тастау коды. Егер clip=l, онда
Геометриялық объектілерді сызу операторлары
1. (xl, yl), (x2, y2) н‰ктелерін қосатын т‰зу
line (xl, yl, x2, y2)
ал, lineto (x, y) - функциясы ағымдық н‰ктеден
Сғйкес сол жақ жоѓарѓы жғне оњ жақ тµменгі
rectangle (xl, yl, x2, y2);
Орталық н‰ктесі (x, y) шењбер:
circle (x, y, радиус);
. Шењбер доғасын сызу:
arc (x, y, баст_бүрыш, соњғ._б±рыш, радиус);
- б±рыштар градустық µлшеммен беріледі жғне сағат тіліне
М±ндаѓы ескеретін жайт: кескіндерді салу пиксельдік н‰ктелер бойынша
Жартылай µстері rx, rу болатын боялѓан эллипсті орнату,
(x, y) — орталық н‰ктесі:
ғillellipse (x, y, rx, ry);
Эллипс доғасын сызу:
ellipse (x, y, баст_б±рыш, соњғ._б±рыш, rx, ry );
Боялѓан тік тµртб±рышты салуѓа арналѓан функция:
bar (xl, yl, x2, y2);
- (xl, yl,), (x2, y2) - сғйкес сол
Контур іші боялѓан параллелепипед сызу функциясы:
bar3d (xl, yl, x2, y2, тереңдігі, тµбесі);
м±нда параллелепипедтің алдыњѓы жағы боялып кµрсетіледі. Тереңдік ‰шін
Орталық н‰ктесі (x, y), боялѓан дµңгелек секторы:
pieslice(x, y, баст_б±рыш, соњғ_б±рыш, радиус);
контуры кµрсетілген жғне боялѓан сектор сызылады. Боялу т‰сі
Боялѓан эллипстік сектор:
sector (x, y, баст_б±рыш, соњғ_б±рыш, rx, гу);
Салынған ‰шб±рыш, тік тµртб±рыш, шеңбер сияқты фигураларды ағымдық
setwritemode (режім);
режім ‰шін алынатын кодтар:
0- кµшіру;
1- экранда сызулы кескінді "µшіру";
2- стандартты режім.
Мундағы 1 (бір) - т‰рлі сызықтармен қ±растыру кезінде
Қозғалуды ±йымдастыратын басқа функциялар да бар:
getimage(), imagesize() жғне putimage(). getimage() функциясы арқылы бейне
Н‰кте орнату:
putpixel (x, y, т‰с);
М±ндаѓы x, y — терезеніњ координаттар ж‰йесінде пиксель
Терезеде мғтін орнату:
outtextxy (x, y, mn);
М±ндаѓы x, y - мғтін шыѓарылатын бастапқы н‰кте,
outtext() функциясы да бар.
Тµменгі функцияны пайдаланып, мғтінді т‰рлі т‰рде шыѓаруға болады.
settextstyle (шрифт, бағыт, µлшем);
шрифт (қаріп) параметрлерініњ негізгілері:
0 DEҒAULT _ҒONT стандартты
3 SANS_SERIҒ_ҒONT тікесінен жазу
бағыт параметрлері:
0 HORlZ_DIR солдан оњға қарай
1 VERT DIR тµменнен жоғарыға
µлшем - коды 1 .. 10 аралыѓында алынатын
Фигуралар салу программалары
Экран бетіне ақ т‰сті шеңбер, тік тµртб±рыш жғне
#include
#include
#include
#include
main ()
{
int gd, gm, error; clrscr ();
detectgraph (&gd, &gm);
initgraph (&gd, &gm, "c:\\Borland\\bgi");
error=graphresult (); iғ (error != grOK)
{ puts (grapherrormsg(error)); exit (-1); }
/* кµгілдір экранда ақ т‰с орнату */
setbkcolor (1); setcolor (15);
/* объектініњ ерекшеліктерін орнату */
setlinestyle (0, 0, 0);
/* экранды тазалау */
cleardevice ();
/* шыѓару терезесін орнату, оны тазалау */
setviewport (10, 10, getmaxX()-50, getmaxY() -50,
clearviewport ();
/* қажетті т‰стерді дайындап, фигуралар салу*/
setbkcolor (0); setcolor (15);
circle (70, 70, 50);
rectangle(180, 30, 250, 150);
line (280, 70, 400, 150);
settextstyle (0, 0, 0);
outtextxy (40, 140, "Шеңбер");
outtextxy (160, 160, "Тіктµртб±рыш");
outtextxy (380, 160, "Кесінді");
getch (); closegraph (); return 0;
}
Ішіне 75%, 25% жазулары жазылѓан боялѓан дµњгелек сектор
Программа ‰зіндісі:
main ()
{
int gd, gm; clrscr ();
initgraph (&gd, &gm, " "); setbkcolor (1);
setcolor (4); setғilestyle (1, 3);
circle (70, 70, 50);
x= getmaxx()/2; y= getmaxy()/2;
setfillstyle (1, 2);
pieslice (100, 100, 0, 80, 90);
sector (250, 250, 0, 50, 200, 120);
settextstyle (1, 0, 2);
moveto (80, 60); outtext ( "75%");
/* (80,60) н‰ктеден бастап */
moveto (120, 110); outtext ("25%");
getch();
closegraph (); return (0);
}
Экранда кездейсоқ орналасқан 70-тей ж±лдыз жғне олардыњ шетінде
Блоктарды пайдаланып қ±рылѓан программа (2.9 — тақырыпта қ±рылѓан
Оныњ ескерту бµлімінде жазылған екінші н±сқасы пайдаланылды):
#include
#include
#include
#include
void initialize();
void pixel();
int gd, gm, maxX, maxY, maxColors;
void main ()
{
initialize();
pixel();
getch(); closegraph();
}
void initialize()
{ gd=DETECT;
initgraph(&gd, &gm, " ");
}
void pixel()
{
int seed=100; int x, y, k, maxcolors, color;
clrscr ();
cleardevice(); srand(seed); /* srand — unsigned rand */
setbkcolor(l); setcolor(14); ғor(k=0; k