GameResMgr.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. // const ResPath = [
  2. // {
  3. // bg:[
  4. // "Theme/Theme1/BG0/BG1-hd.pvr.ccz/spriteFrame",
  5. // "Theme/Theme1/BG0/BG2-hd.pvr.ccz/spriteFrame",
  6. // ],
  7. // monster:[
  8. // "Theme/Theme1/Items/Monsters01-hd",
  9. // "Theme/Theme1/Items/Monsters02-hd",
  10. // ],
  11. // obs:[
  12. // "Theme/Theme1/Items/Object01-hd",
  13. // "Theme/Theme1/Items/Object02-hd",
  14. // ],
  15. // pathImg:"Theme/Theme1/BGlv/BG-hd.pvr.ccz/spriteFrame",
  16. // tmx:"Theme/Theme1/BG1lv/BGPath"
  17. import { Asset, log, SpriteFrame, TiledMapAsset } from "cc";
  18. import { GameResData } from "../DataItem/ItemData";
  19. import { dataMgr } from "../Frames/DataManager";
  20. import { GameInfo } from "../GameInfo";
  21. import { resMgr } from "../Frames/ResourcesMgr";
  22. // },
  23. // {
  24. // bg:[
  25. // "Theme/Theme2/BG0/BG1-hd.pvr.ccz/spriteFrame",
  26. // "Theme/Theme2/BG0/BG2-hd.pvr.ccz/spriteFrame",
  27. // ],
  28. // monster:[
  29. // "Theme/Theme2/Items/Monsters01-hd",
  30. // "Theme/Theme2/Items/Monsters02-hd",
  31. // ],
  32. // obs:[
  33. // "Theme/Theme2/Items/Object01-hd",
  34. // "Theme/Theme2/Items/Object02-hd",
  35. // ],
  36. // pathImg:"Theme/Theme2/BGlv/BG-hd.pvr.ccz/spriteFrame",
  37. // tmx:"Theme/Theme2/BG1lv/BGPath"
  38. // },
  39. // {
  40. // bg:[
  41. // "Theme/Theme2/BG0/BG1-hd.pvr.ccz/spriteFrame",
  42. // "Theme/Theme2/BG0/BG2-hd.pvr.ccz/spriteFrame",
  43. // ],
  44. // monster:[
  45. // "Theme/Theme2/Items/Monsters01-hd",
  46. // "Theme/Theme2/Items/Monsters02-hd",
  47. // ],
  48. // obs:[
  49. // "Theme/Theme2/Items/Object01-hd",
  50. // "Theme/Theme2/Items/Object02-hd",
  51. // ],
  52. // pathImg:"Theme/Theme2/BGlv/BG-hd.pvr.ccz/spriteFrame",
  53. // tmx:"Theme/Theme2/BG1lv/BGPath"
  54. // },
  55. // ]
  56. class GameResMgr{
  57. private _resData: GameResData[] = null;
  58. static instance: GameResMgr = null;
  59. async loadGameRes(){
  60. this._resData = dataMgr.getAllDataByName("GameResPath");
  61. for(let i = 0; i < this._resData.length; i++){
  62. const data = this._resData[i];
  63. let path;
  64. let name;
  65. if(data.replace[0]){
  66. path = data.path.replace(data.replace[0], String(GameInfo.Instance.CurTheme));
  67. name = data.resName.replace(data.replace[0], String(GameInfo.Instance.CurTheme));
  68. }
  69. if(data.replace[1]){
  70. path = path.replace(data.replace[1], String(GameInfo.Instance.CurLv));
  71. name = name.replace(data.replace[1], String(GameInfo.Instance.CurLv));
  72. }
  73. //通过上面的名字和路径 加载资源
  74. await resMgr.load(path, name, data.atlas);
  75. }
  76. }
  77. //获取当前关卡的背景图片
  78. getMapBg(style: number): SpriteFrame{
  79. const name: string = `${GameInfo.Instance.CurTheme}-${style}`;
  80. return resMgr.getSpriteFrame(name);
  81. }
  82. //获取当前关卡的路径图片
  83. getPathBg(): SpriteFrame{
  84. const name: string = `${GameInfo.Instance.CurTheme}-${GameInfo.Instance.CurLv}-pathBg`;
  85. return resMgr.getSpriteFrame(name);
  86. }
  87. //获取当前关卡的瓦片地图
  88. getTmx(): TiledMapAsset{
  89. const name: string = `${GameInfo.Instance.CurTheme}-${GameInfo.Instance.CurLv}-tmx`;
  90. return resMgr.getTmxAsset(name);
  91. }
  92. //获取当前主题下的某个怪物图片
  93. getMonsterFrame(name: string): SpriteFrame{
  94. name = `${GameInfo.Instance.CurLv}-name`;
  95. return resMgr.getSpriteFrame(name);
  96. }
  97. //获取当前主题的style格式下的某个障碍物的图片
  98. getObsFrame(style: number, index: number | string){
  99. //拼接精灵帧的名字
  100. // 1 => 00 01 12 => 000 12
  101. let i: string;
  102. if(typeof(index) === "number"){
  103. i = "000" + index;
  104. i = GameInfo.Instance.CurTheme + "-" + style + "-cloud" + i.slice(i.length - 2);
  105. }
  106. else{
  107. i = GameInfo.Instance.CurTheme + "-" + style + "-cloud" + index;
  108. }
  109. return resMgr.getSpriteFrame(i);
  110. }
  111. }
  112. export const gameResMgr: GameResMgr = GameResMgr.instance = new GameResMgr();