| Version 3 (modified by , 5 weeks ago) ( diff ) |
|---|
UseCaseImplementationsFinal
Изворниот код е достапен тука.
На следната табела се прикажани сработените кориснички сценарија:
| ID | Use Case |
| 1 | Најава со Google |
| 2 | Креирање корисничко име |
| 3 | Избор на игра |
| 4 | Избор на класа |
| 5 | Барање на противник (Queue) |
| 6 | Борба (Real-time) |
| 7 | Преглед на Лидер табла |
| 8 | Управување со пријатели |
| 9 | Е-пошта известувања за пријатели |
| 10 | Преглед на статистика |
ИД: 1 - Најава со Google
Пристап до почетната страница каде што системот го пренасочува кон Google OAuth сервисот каде корисникот ја избира својата сметка.
oAuth проверката за успешност, покрај креденцијалите кои се доделини од Google ги проверува и самата апликација. Притоа доколку е успешна најавата се креира нов корисник во базата на апликацијата.
ИД: 2 - Креирање корисничко име
Доколку корисникот се најавува прв пат, системот го пренасочува кон формата за креирање на уникатно корисничко име.
По успешно внесување на име кое не е зафатено, корисникот се пренасочува кон почетната страна.
ИД: 3 - Избор на игра
Изборот на игра се случува пред изборот на класа бидејќи секоја игра си има свои класи.
За пренос на страната се користи мапирање до патеката /fight/choose-game
ИД: 4 - Избор на класа
Во "Fight Lobby" делот, корисникот има можност да избере помеѓу достапните класи (херои), како што се Samurai Mack или Kenji.
Со клик на иконата или името на класата, системот го евидентира изборот и ги прикажува статистиките (Health, Damage, Speed) за избраниот херој. Изборот на класата е подоцна значаен во самиот queue за поврзување на играчите.
ИД: 5 - Барање на противник (Queue)
Откако ќе избере класа, корисникот клика на копчето "Find Match". Корисникот се префрла на екран за чекање додека системот бара соодветен противник.
Штом се најде противник, системот автоматски ги пренасочува двајцата играчи кон арената.
Имплементацијата за самиот queue го изведуваме во алгоритам кој го зема во предвид не само избраната класа на играчот, туку и избраната игра. Ова е битно затоа што системот мора да провери дали дадени играчи ја имаат избрано истата игра (играч 1 да избере бокс, играч 2 да избере карате).
ИД: 6 - Борба (Real-time)
По успешно поврзување, се вчитува арената (fight.html). Двајцата играчи се видливи на екранот со нивните Health барови.
Корисниците ја користат тастатурата за движење и напад. Сите акции се синхронизираат во реално време преку WebSockets.
Кога здравјето на еден од играчите ќе падне на нула, се прикажува порака за крај на мечот (Game Over) и победникот.
Имплементацијата за вчитување на анимациите и движењата на играчите се поставено во логиката на клиентска frontend страна.
ИД: 7 - Преглед на Лидер табла
Постои можност за филтрирање на табелата според различни критериуми.
Со избирање на опцијата "Leaderboard" од менито, корисникот добива листа на најдобро рангираните играчи сортирани според бројот на победи.
Истата имплементација се наога:
ИД: 8 - Управување со пријатели
Корисникот може да пребарува други играчи според нивното корисничко име и да им испрати покана за пријателство.
ИД: 9 - Е-пошта известувања за пријатели
При додавање на пријатели освен приказ на предниот екран
Се испраќа мејл порака за нотификација на корисникот (истата gmail адреса со која е логиран преку oAuth)
Истата мејл порака се испраќа и при потврда/одбивање на тоа барање на пријателство.
Логиката за испраќање на мејл е направена преку надворешната библиотека javamailsender.
Со просто конфигурирање на истата е лесно овозможено преку било која поставена адреса во application.yml да испраќа мејл.
Изведбата е направена преку сервисот
ИД: 10 - Преглед на статистика
На страницата за профил, корисникот има увид во својата лична статистика, вклучувајќи победи, порази и моментален добиени Achievements. Achievements се добиваат со одреден број на поени преку играње.
Тоа е изведено преку
Attachments (26)
- email_accept_friend.png (9.2 KB ) - added by 5 weeks ago.
- email_add_friend.png (11.1 KB ) - added by 5 weeks ago.
- add_friend.png (176.5 KB ) - added by 5 weeks ago.
- mail_service.png (62.6 KB ) - added by 5 weeks ago.
- statistics_user_code.png (48.3 KB ) - added by 5 weeks ago.
- app_yml_mail.png (26.0 KB ) - added by 5 weeks ago.
- java_mail_pom.png (14.7 KB ) - added by 5 weeks ago.
- leaderboard_code.png (83.2 KB ) - added by 5 weeks ago.
- movement_2.png (101.7 KB ) - added by 5 weeks ago.
- movement.png (153.8 KB ) - added by 5 weeks ago.
- socket_1.png (114.6 KB ) - added by 5 weeks ago.
- queue_2.png (46.7 KB ) - added by 5 weeks ago.
- choose_game_img.png (20.3 KB ) - added by 5 weeks ago.
- choose_game.png (10.9 KB ) - added by 5 weeks ago.
- queue_1.png (116.7 KB ) - added by 5 weeks ago.
- oAuth.png (88.8 KB ) - added by 5 weeks ago.
- leaderboard_page.png (109.3 KB ) - added by 5 weeks ago.
- statistics_user.png (173.5 KB ) - added by 5 weeks ago.
- friends_page.png (136.8 KB ) - added by 5 weeks ago.
- leaderboard_filter.png (164.4 KB ) - added by 5 weeks ago.
- login_screen.png (21.9 KB ) - added by 5 weeks ago.
- fight_start.png (156.7 KB ) - added by 5 weeks ago.
- game_over.png (58.7 KB ) - added by 5 weeks ago.
- create_username.jpg (36.9 KB ) - added by 5 weeks ago.
- class_selection.jpg (93.1 KB ) - added by 5 weeks ago.
- fight_waiting.jpg (57.0 KB ) - added by 5 weeks ago.


























