WorkingBuildingAnimal.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. var reGameStates = require('GameStates');
  2. //建筑物信息
  3. var animalInfo = cc.Class({
  4. name: "animalInfo",
  5. properties: {
  6. //动物类型
  7. animalType: {
  8. default: reGameStates.AnimalType.None,
  9. type: cc.Enum(reGameStates.AnimalType),
  10. },
  11. //动物类型id
  12. id: {
  13. default: -1,
  14. visible: false
  15. },
  16. isItHungry: {
  17. default: false,
  18. tooltip: '是否饥饿',
  19. visible: false
  20. },
  21. animalName: {
  22. default: '',
  23. },
  24. justBreed: {
  25. default: null,
  26. type: cc.SpriteFrame,
  27. tooltip: '初始养殖'
  28. },
  29. justBreedHungry: {
  30. default: null,
  31. type: cc.SpriteFrame,
  32. tooltip: '初始养殖饥饿'
  33. },
  34. growBreed: {
  35. default: null,
  36. type: cc.SpriteFrame,
  37. tooltip: '养殖成长'
  38. },
  39. growBreedHungry: {
  40. default: null,
  41. type: cc.SpriteFrame,
  42. tooltip: '养殖成长中饥饿'
  43. },
  44. matureBreed: {
  45. default: null,
  46. type: cc.SpriteFrame,
  47. tooltip: '养殖成熟状态'
  48. }
  49. }
  50. });
  51. cc.Class({
  52. extends: cc.Component,
  53. properties: {
  54. animals: {
  55. default: [],
  56. type: animalInfo,
  57. tooltip: '养殖动物配置'
  58. },
  59. currentAnimal: {
  60. default: null,
  61. type: animalInfo,
  62. visible: false,
  63. tooltip: '当前养殖的动物信息'
  64. },
  65. changeSprite: {
  66. default: null,
  67. type: cc.Sprite,
  68. serializable: true,
  69. },
  70. foodChangeSprite: {
  71. default: null,
  72. type: cc.Sprite,
  73. serializable: true,
  74. },
  75. foodFullSpriteFrame: {
  76. default: null,
  77. type: cc.SpriteFrame,
  78. serializable: true,
  79. },
  80. foodEmptySpriteFrame: {
  81. default: null,
  82. type: cc.SpriteFrame,
  83. serializable: true,
  84. },
  85. },
  86. // start() {
  87. // },
  88. /**
  89. * 设置成长状态
  90. * @param {动物类型} animalType
  91. * @param {成长状态} growStage
  92. * @param {是否在饥饿状态} isItHungry
  93. */
  94. onSetGrow(animalType, growStage, isItHungry) {
  95. if (this.currentAnimal == null) {
  96. for (let i = 0; i < this.animals.length; i++) {
  97. if (this.animals[i].animalType == animalType) {
  98. this.currentAnimal = this.animals[i];
  99. }
  100. }
  101. }
  102. if (this.currentAnimal) {
  103. if (growStage === 0) {
  104. this.changeSprite.spriteFrame = isItHungry ? this.currentAnimal.justBreedHungry : this.currentAnimal.justBreed;
  105. this.foodChangeSprite.spriteFrame = isItHungry ? this.foodEmptySpriteFrame : this.foodFullSpriteFrame;
  106. } else if (growStage === 1) {
  107. this.changeSprite.spriteFrame = isItHungry ? this.currentAnimal.growBreedHungry : this.currentAnimal.growBreed;
  108. this.foodChangeSprite.spriteFrame = isItHungry ? this.foodEmptySpriteFrame : this.foodFullSpriteFrame;
  109. } else {
  110. this.changeSprite.spriteFrame = this.currentAnimal.matureBreed;
  111. }
  112. }
  113. },
  114. /**
  115. * 获取成熟的spriteFrame
  116. * @param {*} withered
  117. * @param {*} animalType
  118. * @returns
  119. */
  120. onGetMatureBreed(withered, animalType) {
  121. for (let i = 0; i < this.animals.length; i++) {
  122. // console.log(animalType,this.animals[i].animalType);
  123. if (this.animals[i].animalType == animalType) {
  124. this.currentAnimal = this.animals[i];
  125. //这里处理一个成熟的枯萎状态,暂时用成长过程的饥饿状态来展现
  126. return withered ? this.currentAnimal.growBreedHungry : this.currentAnimal.matureBreed;
  127. }
  128. }
  129. },
  130. /**
  131. * 重置成长状态
  132. */
  133. onResetAnimal() {
  134. this.currentAnimal = null;
  135. this.changeSprite.spriteFrame = null;
  136. this.changeSprite.spriteFrame = this.foodEmptySpriteFrame;
  137. }
  138. });