Жоспар №15122

Бәйге ойынын жобалау және графикалық-анимациялық бағдарламасын құру

Сұрақ-жауап

Сұрағыңызға жасанды интеллект жауап береді

Аннотация «Бәйге ойыны бағдарламасын жасау» тақырыбындағы берілген курстық жұмыста Мақсатым ойын-бағдарламасын жазу болды, мұнда тышқанның көмегімен экранда Алдымен 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

Мәтінді көшіру үшін белсенді жазылым қажет.

Пайдаланушы ID: 557765

Жарияланған күні: