AniParentalGateView.h 1.36 KB
//
// Created by Katarzyna Kalinowska-Górska on 2019-10-07.
//

#ifndef PROJ_ANDROID_AniParentalGateView_H
#define PROJ_ANDROID_AniParentalGateView_H

#include "cocos2d.h"
#include <vector>

class AniParentalGateView : public cocos2d::LayerColor {
public:
    static AniParentalGateView* create(float width, float height, std::function<void()> onSuccessCallback,std::function<void()> onFailureCallback);
    
protected:
    
    struct KKTextDigit {
        static const std::vector< char*> DigitNames;
        int digit;
        const char* text;
        
        KKTextDigit(int pDigit) {
            assert(pDigit >= 0 && pDigit <= 9);
            digit = pDigit;
            text = DigitNames[digit];
        }
    };

    
    std::function<void()> _onSuccessCallback;
    std::function<void()> _onFailureCallback;
    cocos2d::Label* digitsLabel;
    std::vector<KKTextDigit> correctDigitSequence;
    int currentIndex;
    
    bool init(float width, float height, std::function<void()> onSuccessCallback,std::function<void()> onFailureCallback);
    void setupAppearance();
    void setupLogic();
    std::vector<KKTextDigit> generateTextDigits(int digitsCount);
    std::string randomButtonBgImagePath();
    void highlightTextDigit(int atIndex);
    void digitButtonPressed(std::string digitName);
    void updateDigitsLabel();
};


#endif //PROJ_ANDROID_AniParentalGateView_H