Przez pomyłkę zamieściłem to na stackoverflow, a teraz zamieszczam tutaj, na podstawie sugestii w tej witrynie ...
To pytanie koncepcyjne na bardzo wysokim poziomie. Powiedz w aplikacji, że mam 4 różne działania, na przykład: przesyłanie, udostępnianie, komentowanie i tym podobne
I chcę nadać odznaki osiągnięć użytkownikom, takim jak:
- Świeżak - Prześlij swoje pierwsze 5 plików
- Prześlij Junkie - Prześlij 20 plików w ciągu 1 dnia
- Night Crawler - Prześlij plik po północy
- Share-a-holic - Udostępnij 10 różnych plików
- Lubi wszystko - jak 20 różnych plików
Masz pomysł. W jaki sposób najlepiej sprawdzić i sprawdzić, czy użytkownik osiągnął określone osiągnięcie bez konieczności kompilowania logiki osiągnięcia w moim kodzie? I .. - Zachowaj możliwość dodawania nowych osiągnięć po kompilacji (xml lub db) - Osiągnięcia muszą śledzić określone działania, liczbę razy i dodatkowe kryteria (np. Porę dnia) - Wykrywanie powinno odbywać się w czasie rzeczywistym, aby użytkownik został powiadomiony prawie natychmiast po ukończeniu osiągnięcia
Moje największe pytanie brzmi: jak mogę wykryć te osiągnięcia? Czy ja:
1) Sprawdź po każdej akcji, aby sprawdzić, czy ... (Większość w czasie rzeczywistym) 2) Czy inny program przez cały czas sprawdza DB pod kątem zestawu reguł? (Najłatwiejszy)
Czy brakuje mi innego paradygmatu? Wydaje mi się, że zdecydowanie tak jest, ponieważ w wielu grach (np. Jetpack na iOS) jestem powiadamiany o osiągnięciu, które odblokowałem w momencie, w którym je odblokowałem, co było dość imponujące.
Dziękuję Ci