Се работи за интересна и едноставна игра чија цел е играчот движејќи го црвеното квадратче да стигне од обележаната почетна до обележаната крајна позиција, притоа избегнувајќи ги топчињата поставени какo препреки. За движење на квадратчето се користат копчињата W за придвижување нагоре, S за надолу, A за лево и D за десно. Главниот проблем на играчот е тоа што при судир на квадратчето со некое од топчињата, го враќа квадратчето на почетната позиција. Играчот не е временски ограничен и цели кон завршување на трите левели со што помал број на судири со топчињата (deaths). Идејата за апликацијата ја добивме од веќе постоечката истоимена игра линк, но имплентацијата ја започнавме од нула и е целосно наша.
Решението се состои од 3 класи и 4 форми.
Податоците за секое топче се чуваат во класата Ball. Таа содржи:
- Координати X и Y за позицијата на топчето
- Променлива Radius за радиусот на топчето
- Променлива Velocity која ја чува брзината на топчето
- Променлива Angle за аголот на движење на топчето
- Објект Bounds од класата Rectangle кој се да ги одреди границите на движење на топчето
- Две променливи velocityX и velocityY во кои се чува придвижувањето на топчето врз основа на аголот
Класа Square која ги чува информациите за квадратчето и содржи:
- Координати X и Y кои ни ја чуваат позицијата на квадратчето
- Енумерација direction за насоката на движење
- Статични променливи SIDE и VELOCITY за страната и брзината на придвижување на квадратчето соодветно
- Инстанца од класата Level
- Променлива Deaths за број на судири на квадратчето со топчињата
- Променлива BrojLevel која содржи информација за бројот на тековниот левел.
- Инстанца од класата Timer
- Два помошни знаменца (flags)
Класата Level содржи:
- Три објекти од класата Rectangle (Golem1, Start1, End1) кои ни ги означуваат областите на движење на квадратчето
- Инстанци од класата Ball кои ги означуваат топчињата низ левелите
- Статична промелива SIZEBALL за големината на топчињата
- Три статични променливи (VELOCITYLEVEL1, VELOCITYLEVEL2, VELOCITYLEVEL3) кои ни ги чуваат брзините на движење на топчињата за секој левел посебно
- Три статични променливи (ANGLE45, ANGLE90, ANGLE180) кои чуваат агол на движење на топчињата
- Променлива BrojLevel која го чува бројот на тековниот левел
Форма StartForm:
Се појавува при вклучување на апликацијата и содржи мени составено од PictureBox контроли чии Click events не носат на почеток на играта(левел 1), објаснување на правилата или исклучување на апликацијата.
Форма HowToPlay:
Дава опис на правилата и нуди можност за старт на играта или враќање на почетното мени.
Форма Form1:
Главната форма служи за исцртување на левелите(настанот Paint) и содржи настани како Кеy_Press и Key_Down кои го контролираат движењето на квадратчето.
Како пример ги земаме двете класи Ball и Level за кои има пишувано коментари за објаснување на променливите и методите.
Почетен екран
How to play форма
Screenshot од првиот левел
Screenshot од вториот левел
Screenshot од третиот левел
Форма за крај на играта