Садржај
2 Класе и објекти
2.1 Основни појмови о класама и објектима
3 Генеричке класе
4 Наслеђивање и полиморфизам
5 Примери пројеката са решењима
5.1 Различита кретања
5.2 Квиз
5.4 Приказ рада алгоритама сортирања

Различита кретања различитих тела

У овом примеру приказаћемо анимацију током које се различите врсте тела крећу свака на свој начин. У примеру постоје три врсте тела: точкови који се котрљају, лоптице које скакућу и авиончићи који лете. Свим телима се управља на исти начин, при чему се не обраћа пажња на то које тело је које врсте.

Да бисмо омогућили овакав сценарио, дефинисали смо апстрактну базну класу Telo, са апстрактним методима PomeriSe, RestartujSe и NacrtajSe. Након тога, анимација се једноставно остварује тако што се из метода форме timer1_Tick за свако тело позове метод PomeriSe, а из метода Form1_Paint позове се метод NacrtajSe. Тело које после неког времена заврши а из метода Form1_Paint позове се метод NacrtajSe. Тело које после неког времена заврши са својим кретањем, може да позове свој метод RestartujSe и на тај начин почне да се понаша као ново тело.


Ево како изгледа изворни кôд класе Telo:

Класе Tocak, Loptica и Avioncic, изведене из класе Telo, могу да буду написане овако.

Класа Form1 је необично мала, јер се састоји од само три врло кратка метода. Класа садржи само једну листу типа List<Telo>. У форми се не помињу изведене класе, нити форма има потребу да зна било шта о тим изведеним класама. Листа тела се формира (попуњава) у методу Form1_Load, при покретању програма.

Као што смо поменули на почетку, на сваки откуцај тајмера тела се померају тако што се за свако од њих позове метод PomeriSe, а у методу Form1_Paint се исцртавају позивањем метода NacrtajSe за свако тело.

Ако желите да испробате апликацију, потребно је да урадите следеће:

  • Креирајте нови пројекат типа Windows Forms App и назовите га Kretanje

  • Додајте у пројекат нови фајл (десни клик на пројекат у прозору Solution Explorer, ставка Add, а затим New Item у искачућем менију), назовите га Telo.cs и копирајте у њега кôд класе Telo.

  • На исти начин додајте у пројекат још три нова фајла, назовите их Tocak.cs, Loptica.cs и Avioncic.cs, а затим копирајте у њих дате садржаје.

  • Прегазите садржај фајла Form1.cs садржајем датим у наставку

  • Прегазите садржај фајла Form1.Designer.cs садржајем који следи после фајла Form1.cs


Садржај фајла Form1.cs:

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+