TestScene.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. //
  2. // TestScene.cpp
  3. // demo
  4. //
  5. // Created by Red_mini on 2024/10/11.
  6. //
  7. #include "TestScene.h"
  8. #include "RUPlatform.h"
  9. #include "IAPCtlShop.hpp"
  10. #include "IAPDefine.hpp"
  11. #include "IAPTestCard.hpp"
  12. #include "IAPDelegateImpl.hpp"
  13. USING_NS_CC;
  14. Scene* TestScene::createScene(){
  15. // create the scene with physics enabled
  16. auto scene = Scene::create();
  17. auto layer = TestScene::create();
  18. scene->addChild(layer);
  19. return scene;
  20. }
  21. bool TestScene::init(){
  22. if (!Layer::init()) {
  23. return false;
  24. }
  25. std::string cfgFN = "shop_5.json";
  26. std::string failFN = "purchaseBannerConfig.csv";
  27. _iapShop = iap::IAPCtlShop::createWith();
  28. auto delegate = IAPDelegateImpl::createWith();
  29. _iapShop->setDelegate(delegate);
  30. _iapShop->init(cfgFN);
  31. _iapShop->setCfg4Failure(failFN);
  32. iap::IAPPlacement plInfo;
  33. plInfo.id = "1";
  34. IAPTestCard* testCard = new IAPTestCard();
  35. IAPTestCard* testCard2 = new IAPTestCard();
  36. plInfo.cards.push_back(testCard);
  37. plInfo.cards.push_back(testCard2);
  38. _iapShop->addAPlacement(plInfo);
  39. // 第二个版位
  40. // iap::IAPPlacement plInfo2;
  41. // plInfo2.id = "2";
  42. // IAPTestCard* testCard3 = new IAPTestCard();
  43. // IAPTestCard* testCard4 = new IAPTestCard();
  44. // plInfo2.cards.push_back(testCard3);
  45. // plInfo2.cards.push_back(testCard4);
  46. //
  47. // _iapShop->addAPlacement(plInfo2);
  48. IAPTestCard* testCard5 = new IAPTestCard();
  49. _iapShop->addCardToPlacement(plInfo.id, testCard5);
  50. // 在此处添加场景初始化的代码,比如创建背景、角色、UI等
  51. createBoard();
  52. schedule(CC_SCHEDULE_SELECTOR(TestScene::update), 1.0f);
  53. return true;
  54. }
  55. void TestScene::createBoard(){
  56. auto lyMap = redutils::RUReboltLayer::createReboltLayer("lyMap.redream");
  57. this->addChild(lyMap);
  58. // log(lyMap->getChildrenCount());
  59. lyMap->registerOnNotify([this](const redutils::ReboltNotifyData& data){
  60. onNotifyDevelopment(data);
  61. });
  62. lyMap->runBehaviacWhitFunName("初始化");
  63. }
  64. void TestScene::onNotifyDevelopment(const redutils::ReboltNotifyData& data){
  65. if(data.notify == "点击显示商店"){
  66. log("点击显示商店按钮");
  67. iap::ShopRequirement shopRequirement;
  68. shopRequirement.coinsMin = 0;
  69. _iapShop->showInNode(this, shopRequirement);
  70. }else if(data.notify == "点击设备1"){
  71. _iapShop->setDeviceLevel(1);
  72. log("设置为低等级设备");
  73. }else if(data.notify == "点击设备2"){
  74. _iapShop->setDeviceLevel(3);
  75. log("设置为高等级设备");
  76. }else if(data.notify == "点击失败"){
  77. log("点击失败时金币不够按钮");
  78. // iap::ShopRequirement shopRequirement;
  79. // shopRequirement.coinsMin = 10000;
  80. //
  81. // _iapShop->showInNode(this, shopRequirement);
  82. _iapShop->displayFailureCardIn(this);
  83. }else if(data.notify == "点击重置"){
  84. _iapShop->setDeviceLevel(1);
  85. _iapShop->clearUserBuyInfo();
  86. log("重置为低等级设备,且清除用户购买信息");
  87. }
  88. }
  89. void TestScene::update(float dt){
  90. }