// // PurchaseBannerCtrl.hpp // merge6 // // Created by Black Homles on 2024/9/24. // #ifndef PurchaseBannerCtrl_hpp #define PurchaseBannerCtrl_hpp #include "cocos2d.h" #include "extensions/cocos-ext.h" #include "PurchaseBannerDelegate.h" #include "PurchaseBannerView.hpp" class PurchaseBannerCtrl : public PurchaseBannerViewDelegate { public: PurchaseBannerCtrl(); ~PurchaseBannerCtrl(); static PurchaseBannerCtrl* getInstance(); ///初始化组件 ///tmpNode,代理类实现 void init(PurchaseBannerDelegate* pDelegate); ///加载pageview节点,添加banner ///outerNode,外部传入的父节点 ///bNameList,要添加的banner名称 ///autoTime,如果要自动切换下一页,需要设置时间 void showBanner(Node* outerNode,vector bNameList,float autoTime = 0); ///pageview元素被点击,如果是活动,通过代理发送到外部 ///bName,banner名称,是谁发的消息 void pageViewBtnClick(int bNO,string bName); ///内购回调函数,如果是礼包,通过代理下发 ///succ,内购结果成功或失败 void purchaseReturn(bool succ); void purchaseOverCallBack(int bNO,string bName,bool isok); virtual PurchaseBannerCell* pageCellAtIndex(PurchaseBannerView* pageView, int index) override; virtual void pageCellTouched(Touch* touch, PurchaseBannerCell* page) override; virtual void onPageChanged(int currentPageIndex, bool manualSet) override; virtual void onPageTouchBegan(Touch* touch) override; private: static PurchaseBannerCtrl* tempPBCtrlInst; PurchaseBannerDelegate* _pBannerDelegate = nullptr; Node* _parentNode = nullptr; vector _bNameList = {}; vector _bResList = {}; PurchaseBannerView* _pviewNode = nullptr; PurchaseBannerView::sDotCfg _gDotCfg; std::map _pviewCellNameMap = {}; float _moveNextTime = 0; void showTimeOutTip(); void startShowNextPage(float dtt); }; #endif /* PurchaseBannerCtrl_hpp */