Различита кретања различитих тела¶
У овом примеру приказаћемо анимацију током које се различите врсте тела крећу свака на свој начин. У примеру постоје три врсте тела: точкови који се котрљају, лоптице које скакућу и авиончићи који лете. Свим телима се управља на исти начин, при чему се не обраћа пажња на то које тело је које врсте.
Да бисмо омогућили овакав сценарио, дефинисали смо апстрактну базну класу 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
: