GameTool.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. var vigameBridge = require("./bridge.js");
  2. import KurumiAD from './KurumiAD';
  3. /**
  4. * 单利工具类
  5. */
  6. class ZYGameTool{
  7. /**
  8. * 坐标数组查找
  9. * @param vec
  10. * @param pt
  11. * @returns {string|number}
  12. */
  13. posIndexOf (vec,pt) {
  14. for(var i in vec){
  15. if(vec[i].x==pt.x&&vec[i].y==pt.y)
  16. return i;
  17. }
  18. return -1;
  19. }
  20. //预加载精灵
  21. loadSpriteFrame (func) {
  22. var tempIndex = 0;
  23. for (var i = 0; i < resources.length; i++) {
  24. cc.resources.load(resources[i], cc.SpriteFrame, function (err, spFrame) {
  25. ++tempIndex;
  26. var num = tempIndex / resources.length * 100;
  27. // console.log("---num--: ", parseInt(num));
  28. if (tempIndex == resources.length - 1) func();
  29. if (err) {
  30. cc.log(err.message || err);
  31. return;
  32. }
  33. }.bind(this));
  34. }
  35. }
  36. /**
  37. * 存储int类型数据
  38. * @param {*} index 存储名
  39. * @param {*} key 值
  40. */
  41. setIntegerForKey (index,key) {
  42. key = key.toString();
  43. cc.sys.localStorage.setItem(index,key);
  44. }
  45. /**
  46. * 获取int类型数据
  47. * @param {*} index 存储名
  48. * @param {*} key 值
  49. */
  50. getIntegerForKey (index,defaultkey) {
  51. defaultkey = defaultkey.toString();
  52. var str = cc.sys.localStorage.getItem(index);
  53. if (str == "" || str == null || str == undefined) {
  54. this.setIntegerForKey(index,defaultkey);
  55. return parseInt(defaultkey);
  56. } else {
  57. return parseInt(str);
  58. }
  59. }
  60. /**
  61. * 存储string类型数据
  62. * @param {*} index 存储名
  63. * @param {*} key 值
  64. */
  65. setStringForKey (index,key) {
  66. console.log("---key--: " , key);
  67. key = key.toString();
  68. cc.sys.localStorage.setItem(index,key);
  69. }
  70. /**
  71. * 获取string类型数据
  72. * @param {*} index 存储名
  73. * @param {*} key 值
  74. */
  75. getStringForKey (index,defaultkey) {
  76. defaultkey = defaultkey.toString();
  77. var str = cc.sys.localStorage.getItem(index);
  78. if (str == "" || str == null || str == undefined) {
  79. this.setStringForKey(index, defaultkey);
  80. return defaultkey;
  81. } else {
  82. return str;
  83. }
  84. }
  85. //获取金币数量
  86. getCoin () {
  87. coinNum = this.getIntegerForKey(localDataItem.coinNum, 10);
  88. return coinNum;
  89. }
  90. useCoin (num){
  91. var key=this.getCoin();
  92. key+=num;
  93. coinNum = num;
  94. this.setIntegerForKey(localDataItem.coinNum, key);
  95. }
  96. //打开广告
  97. OpenAd(adPositionName, adType, callback = null, failCallback = null) {
  98. // console.log("OpenAd adPositionName=======>" + adPositionName.toString() + " adType====>" + adType.toString());
  99. console.log("--OpenAd---OpenAd--: " , adType.toString());
  100. if (cc.sys.os === cc.sys.OS_IOS) {
  101. if(adType=="video"){
  102. if (playeMusic === 1) cc.audioEngine.pauseMusic();
  103. vigameBridge.openAdC(adPositionName,function(openState){
  104. if (playeMusic === 1) cc.audioEngine.resumeMusic();
  105. console.log("open State = " + openState);
  106. if(1 == openState){
  107. if(callback){
  108. callback();
  109. }
  110. }
  111. else
  112. {
  113. if(failCallback){
  114. failCallback();
  115. }
  116. }
  117. }.bind(this));
  118. }else{
  119. vigameBridge.openAd(adPositionName);
  120. }
  121. } else if (cc.sys.os === cc.sys.OS_ANDROID) {
  122. if (adType == "video") {
  123. // 视频广告播放
  124. KurumiAD.instance.ShowRewarded(
  125. (data) => {
  126. //播放成功(可以获得奖励)
  127. if (callback) {
  128. callback();
  129. }
  130. console.log('ShowRewarded success');
  131. },
  132. (data) => {
  133. //播放失败
  134. if (failCallback) {
  135. failCallback();
  136. }
  137. console.log('ShowRewarded fail');
  138. }
  139. );
  140. // console.log('====google===pppp=');
  141. // // jsb.reflection.callStaticMethod("com/ysxq/SDKManager", "showRewardedAd", "()V");
  142. // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AdManage", "showRewardedVideo", "()V");
  143. } else {
  144. // 插屏广告播放
  145. KurumiAD.instance.ShowInterstitial(
  146. (data) => {
  147. //播放成功
  148. },
  149. (data) => {
  150. //播放失败
  151. }
  152. );
  153. }
  154. }
  155. }
  156. //开始渲染游戏
  157. startDrawGame (callback){
  158. vigameBridge.drawGame(function () {
  159. if(callback){
  160. callback();
  161. }
  162. })
  163. }
  164. };
  165. let inistance = null;
  166. module.exports.getInstance = function(){
  167. if(!inistance){
  168. inistance = new ZYGameTool();
  169. }
  170. return inistance;
  171. }