Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019



Pdf көрінісі
бет29/34
Дата28.06.2022
өлшемі2.75 Mb.
#459535
1   ...   26   27   28   29   30   31   32   33   34
devcpp 1 Kaz66

10. Анимация 
  Анимация деген не?
 
Анимация – экрандағы суретті жандандыру (ағылшын тілінен аударғанда
animate –жандандыру (оживлять). Бұл жағдайда нысан қозғалады, айналады, 
соқтығысады, түрін және түсін өзгертеді, т.с.с.
Эффектіленген анимация жасау үшін бағдарламада екі жағдайды шешіп алу 
керек: 

аз жыплықтату арқылы нысанды қозғалысқа келтіру

қозғалыс кезінде тышқан арқылы немесе пернелер арқылы басқара алу. 
Бөл бөлімде осындай түрлі есептердің қарапайым түрлерімен танысамыз. 
Барлық бағдарламаларда шығу батырмасы ретінде Esc пернесі қабылданған.
  Нысанның қозғалысы 
Экранның сол жағынан бастап оң жағына қарай жылжитын 
нысанның бағдарламасын қарастырайық (бізідің жағдайда 
шаршының сурет пайдалан-айық). Егер нысан шекарадан 
шығатын болса немесе Esc пернесі басылған жағдайда ғана 
тоқтайды.
  Алдын ала талдау жасау
Экран бойынша жылғып келе жатқан нысанды 
қарастырайық. Ол қабырғалары 20 пиксель болатын шаршы 
болсын. Бұл нүтенің коодинаттары нысан қозғалу кездерінде 
өзгеріп отырады. Экранның кезкелген жерінде төртбұрыш 
салу үшін жоғарғы сол жақ бұрышын негізігі тіреуші нүкте 
ретінде аламыз және оның координаттарын (х, у) деп аламыз.
Қарама-қарсы бұрыштың координатасы (х+20, у+20) болады.
Енді төртбұрышты нысанның қозғалысыны сипаттау үшін ол жыпылықта-мау 
және бағдарлама барлық компьютерлерде бірдей істейтін дәрежедек болуы 
керек. Осындай бағдарлама орындау үшін төмендегідей алгоритм болуы қажет: 
1) экранда фигура саламыз
2) азғантай ғана тоқтату орнатамыз (көбінесе 10-20 мс); 
3) фигураны өшіреміз; 
4) оның координатасын өзгертеміз; 
5) 1 қадамына түсеміз. 
Бұл іс-әрекеттер «қозғалысты тоқтату» командасы берілгенше жалғасады 
(біздің жағдайда – Esc батырмасын басу немесе нысан оң жақ шекарадан шығып 
кеткен болса). 
Төрбұрыштың қозғалысы көк экранда болсын. Экранды тазалаудың ең тез 
және ең жылдам әдісі оны көк түспен бояу. Сол себепті координата параметрлері 
х және у, сонымен қатар түсі color процедурасын жазуға болады. Біз көк түсті 
қолданғандықтан экрандағы фигура боялып кетеді.


Cи тілінде бағдарламалау Берикжан Касымов, 2018-2019 
 
55 
http://astanabilim.kz/infor/c
  
Бұл процедураның қызметіне көңіл бөліңіздер –ол төртбұрышты сала алды 
және өшіре алады.
Алогритмдегі барлық іс-әрекеттерді бірнеше рет орындау керек, сондықтан 
циклді қолданған жөн. Сонымен қатар ол циклдың неше рет қайталануы керек-
тігін біз алдын ала білмейміз, сондықтан while циклін қолданамыз (шартты 
цикл).
Циклдың аяқталу ретінде – фигураның экран шекарасынан шығып кету 
немесе Esc батырмасын басу. Біз терезенің өлшемі 400-ден 400 –ге дейін болтын 
қылып аламыз. Бұл жағдайда х-тің координатасы 0-ден 399-ға дейін өзгереді, 
сондықтан біз циклдің тоқтамауының шартын х + 20 < 400 осылай аламыз. Бұл 
шарт төртбұрыш экранның шекарасынан шығып кеткенде бұзылады және 
осыдан бағдарламаның жұмыс істеуін аяқтаймыз.
  Пернетақтаның көмегімен оқиғаларды басқаруды ұйымдастыру 
Esc батырмасы арқылы шығуды ұйымдастыруымыз керекпіз. Ол үшін нысан 
қозғалыста болуы керек және getch функциясының көмегімен пернетақтаны баса 
салуды күтіп отырмауымыз керек. Бұл кезде төмендегі алгоритмдер 
қолданылады: 
1. Қандай да бір перне басылғандығын kbhit функциясы арқылы тексереміз, 
себебі ол 0-ге тең нәтижені береді (жауап «жоқ»), егер ешқандай батырма 
басылмаған болса, және нәтиже 0-ге тең емес болса, онда біз кезкелген 
батырманы басқан болып табыламыз.
if (kbhit( )) { . . .} 
2. Егер батырма басылып тұрған болса, онда 

getch функциясын шақыру арқылы ол батырманың кодын анқытаймыз. 
Перненің коды – ол символдар кестесіндегі номері. Егер символға 
жадынан 1 байт орын берілсе, онда 256 әртүрлі символдарды қолдануға 
болады және кодтың мәні 0-ден 255-ке дейінгі интервалда өзгеріп 
отырады.

Егер алынған код Esc(27) кодына тең болса, онда циклдан шығамыз. 
Бағдарламаның пернелермен басқару үшін – сол пернелердің кодтарын білуіміз 
қажет. Мысалы кейбір пернелердің кодтары: 


Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   34




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет