GameTool.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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 (callback) {
  101. callback();
  102. }
  103. if (cc.sys.os === cc.sys.OS_IOS) {
  104. if(adType=="video"){
  105. if (playeMusic === 1) cc.audioEngine.pauseMusic();
  106. callback();
  107. return;
  108. vigameBridge.openAdC(adPositionName,function(openState){
  109. if (playeMusic === 1) cc.audioEngine.resumeMusic();
  110. console.log("open State = " + openState);
  111. if(1 == openState){
  112. if(callback){
  113. callback();
  114. }
  115. }
  116. else
  117. {
  118. if(failCallback){
  119. failCallback();
  120. }
  121. }
  122. }.bind(this));
  123. }else{
  124. // callback();
  125. return;
  126. vigameBridge.openAd(adPositionName);
  127. }
  128. } else if (cc.sys.os === cc.sys.OS_ANDROID) {
  129. //播放成功(可以获得奖励)
  130. if (callback) {
  131. callback();
  132. }
  133. return;
  134. if (adType == "video") {
  135. // 视频广告播放
  136. KurumiAD.instance.ShowRewarded(
  137. (data) => {
  138. //播放成功(可以获得奖励)
  139. if (callback) {
  140. callback();
  141. }
  142. console.log('ShowRewarded success');
  143. },
  144. (data) => {
  145. //播放失败
  146. if (failCallback) {
  147. failCallback();
  148. }
  149. console.log('ShowRewarded fail');
  150. }
  151. );
  152. // console.log('====google===pppp=');
  153. // // jsb.reflection.callStaticMethod("com/ysxq/SDKManager", "showRewardedAd", "()V");
  154. // jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AdManage", "showRewardedVideo", "()V");
  155. } else {
  156. // 插屏广告播放
  157. KurumiAD.instance.ShowInterstitial(
  158. (data) => {
  159. //播放成功
  160. },
  161. (data) => {
  162. //播放失败
  163. }
  164. );
  165. }
  166. }
  167. }
  168. //开始渲染游戏
  169. startDrawGame (callback){
  170. vigameBridge.drawGame(function () {
  171. if(callback){
  172. callback();
  173. }
  174. })
  175. }
  176. };
  177. let inistance = null;
  178. module.exports.getInstance = function(){
  179. if(!inistance){
  180. inistance = new ZYGameTool();
  181. }
  182. return inistance;
  183. }