GameManager.ts 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. import { _decorator, Component, Node, SpriteFrame, sys } from 'cc';
  2. import { config } from './config';
  3. import { settingData } from './data';
  4. import { http } from './http';
  5. import { imageCacheManager } from './manager/imageCacheManager';
  6. import { userDataManager } from './manager/userDataManager';
  7. import { SdkUtil } from './sdkUtil';
  8. import { uiManager } from './manager/uiManager';
  9. import { restart_view } from './ui/restart_view';
  10. import { tools } from './tools';
  11. import { gameSocket } from './socket/gameSocket';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('GameManager')
  14. export class GameManager extends Component {
  15. public static openId:string = 'asd'
  16. public static settingData:settingData = null
  17. // 开启webscoket
  18. public static openWebScoket() {
  19. gameSocket.Instance.connect(config.websocket_domain)
  20. }
  21. // 获取用户默认首页车sf
  22. public static getUserDefaultHomeCarSf():SpriteFrame {
  23. let sf = imageCacheManager.getHomeCarImageById(userDataManager.user_car_list.default_car_id)
  24. return sf
  25. }
  26. // 获取用户默认排行车sf
  27. public static getUserDefaultRankCarSf():SpriteFrame {
  28. let sf = imageCacheManager.getRankCarImageById(userDataManager.user_car_list.default_car_id)
  29. return sf
  30. }
  31. // 检查玩游戏
  32. public static checkPlayGame(parent_node:Node,play_cb) {
  33. let call_back = (()=>{
  34. play_cb()
  35. })
  36. if(userDataManager.getUserIsFreeAds()) {
  37. call_back()
  38. return
  39. }
  40. if(userDataManager.isTodayCanFreePlayGame()) {
  41. userDataManager.addTodayPlayGameNumber()
  42. call_back()
  43. return
  44. }
  45. uiManager.Instance().showUi(config.UI.ui_restart_view, parent_node, (node:Node)=>{
  46. node.getComponent(restart_view).initView((v:restart_view)=>{
  47. GameManager.showVideoAd(config.ADS_TYPE.GAME_RESTART, ()=>{
  48. v.closeSelf()
  49. call_back()
  50. })
  51. },(v:restart_view)=>{
  52. if(userDataManager.isTodayCanShare()==false) {
  53. v.closeSelf()
  54. call_back()
  55. return
  56. }
  57. SdkUtil.shareGame(tools.sys_config.share_des,(r)=>{
  58. if(r==true) {
  59. userDataManager.addTodayShareNumber()
  60. v.closeSelf()
  61. call_back()
  62. }
  63. })
  64. })
  65. })
  66. }
  67. // 设置
  68. public static getSettingData():settingData {
  69. if(GameManager.settingData!=null) {
  70. return GameManager.settingData
  71. }
  72. let str = sys.localStorage.getItem(config.SETTING_DATA)
  73. if(str==undefined||str==""||str==null){
  74. GameManager.settingData = new settingData
  75. } else {
  76. let data:settingData = JSON.parse(str)
  77. GameManager.settingData = data
  78. }
  79. return GameManager.settingData;
  80. }
  81. public static saveSettingData(data:settingData) {
  82. sys.localStorage.setItem(config.SETTING_DATA, JSON.stringify(data));
  83. }
  84. // 震动
  85. public static vibrateShort() {
  86. if(GameManager.settingData.isOpenZhendong) {
  87. SdkUtil.vibrateShort()
  88. }
  89. }
  90. //请求广播
  91. public static requestGuangbo(cb=null) {
  92. http.get(config.STATIC_API.msg, (err,d)=>{
  93. if(!err){
  94. let nd = JSON.parse(d)
  95. if(nd.code === config.status.SUCCESS){
  96. // console.log("system_msg", nd.content)
  97. if(cb!=null){
  98. cb(nd.content)
  99. }
  100. }
  101. }
  102. })
  103. }
  104. //请求用户车列表
  105. public static requestUserCarList(cb=null) {
  106. http.post(config.API.user_car_list,null,(err,d)=>{
  107. if(!err){
  108. let nd = JSON.parse(d)
  109. if(nd.code === config.status.SUCCESS){
  110. // console.log("user_car_list", nd.content)
  111. if(cb!=null){
  112. cb(nd.content)
  113. }
  114. }
  115. }
  116. },'GET')
  117. }
  118. // 请求用户注册/设置地区 stype 1:注册 2:重新设置
  119. public static requestUserSetRegion(region_id:number,stype:number,cb) {
  120. let opt = {'region_id':region_id, 'stype':stype}
  121. http.post(config.API.user_set_region, opt, (err,d)=>{
  122. let nd = JSON.parse(d)
  123. if(nd.code === config.status.SUCCESS){
  124. if(cb!=null){
  125. cb(nd.content)
  126. }
  127. }
  128. })
  129. }
  130. // 请求我的排行 stype 0:全国 1:省 2:市
  131. public static requestMineRank(stype:number, cb) {
  132. let opt = {'stype': stype}
  133. http.post(config.API.user_ranking, opt, (err,d)=>{
  134. if(!err){
  135. let data = JSON.parse(d)
  136. if(data.code===config.status.SUCCESS){
  137. if(cb!=null) {
  138. cb(data.content)
  139. }
  140. }
  141. } else{
  142. console.log("user rank Data err",err)
  143. }
  144. })
  145. }
  146. // 请求排行列表
  147. public static requestRankList(region_id:number, cb) {
  148. http.get(config.STATIC_API.rankings(region_id),(err,d)=>{
  149. if(!err){
  150. let data = JSON.parse(d)
  151. if(data.code===config.status.SUCCESS){
  152. // console.log('data=',data.content)
  153. if(cb!=null) {
  154. cb(data.content)
  155. }
  156. }
  157. } else{
  158. console.log("rankList err",err)
  159. }
  160. })
  161. }
  162. // 请求tt侧边栏用户奖励
  163. public static requestTTSidebarUserReward(status=config.USER_TT_SIDEBAR_REWARD.GET, success_cb, fail_cb=null) {
  164. if(sys.platform != sys.Platform.BYTEDANCE_MINI_GAME) {
  165. success_cb(null)
  166. return
  167. }
  168. if(status != config.USER_TT_SIDEBAR_REWARD.GET) {
  169. uiManager.Instance().showLoading()
  170. }
  171. http.post(config.API.unlock_number_status,{'stype':status}, (err,data)=>{
  172. if(status!= config.USER_TT_SIDEBAR_REWARD.GET) {
  173. uiManager.Instance().hideLoading()
  174. }
  175. if(!err) {
  176. let _data = JSON.parse(data)
  177. if(_data.code==config.status.SUCCESS) {
  178. if(success_cb) {
  179. success_cb(_data.content)
  180. }
  181. } else {
  182. if(fail_cb) {
  183. fail_cb()
  184. }
  185. }
  186. } else {
  187. if(fail_cb) {
  188. fail_cb()
  189. }
  190. }
  191. })
  192. }
  193. // 请求同步数据
  194. public static requestSyncNumber(opt,success_cb=null,fail_cb=null) {
  195. http.post(config.API.sync_free_number, opt, (err,data)=>{
  196. if(!err) {
  197. let _data = JSON.parse(data)
  198. if(_data.code==config.status.SUCCESS) {
  199. if(success_cb) {
  200. success_cb(_data.content)
  201. }
  202. } else {
  203. if(fail_cb) {
  204. fail_cb(_data.code)
  205. }
  206. }
  207. } else {
  208. if(fail_cb) {
  209. fail_cb(err)
  210. }
  211. }
  212. })
  213. }
  214. // 显示视频广告
  215. public static showVideoAd(ads_type=config.ADS_TYPE.UNKNOWN, success_cb, err_cb=null) {
  216. let ad_id = SdkUtil.getAdId(ads_type)
  217. SdkUtil.showVideoAd(ad_id,(res)=>{
  218. if(res.isEnded) {
  219. success_cb(res)
  220. } else {
  221. err_cb(res)
  222. }
  223. })
  224. }
  225. }