KillCountController.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { _decorator, Component, Node, game, director, LabelComponent } from 'cc';
  2. import { GameModel } from '../../models/GameModel';
  3. import { GameController } from './GameController';
  4. const { ccclass, property } = _decorator;
  5. @ccclass('KillCountController')
  6. export class KillCountController extends Component {
  7. /* class member could be defined like this */
  8. // dummy = '';
  9. /* use `property` decorator if your want the member to be serializable */
  10. // @property
  11. // serializableDummy = 0;
  12. @property({
  13. type:LabelComponent
  14. })
  15. killCountText:LabelComponent=null;
  16. @property({
  17. type:Node
  18. })
  19. killCountGroup:Node=null;
  20. private lastTime:number;
  21. start () {
  22. // Your initialization goes here.
  23. this.lastTime=director.getCurrentTime();
  24. this.RefrechText();
  25. }
  26. AddCount(value:number):void{
  27. this.lastTime=director.getCurrentTime();
  28. GameModel.single.killCount++;
  29. this.RefrechText();
  30. }
  31. Clear():void{
  32. }
  33. update (deltaTime: number) {
  34. if(GameController.single.GameOver){
  35. return;
  36. }
  37. if(GameModel.single.killCount>0){
  38. let currentTime:number=director.getCurrentTime();
  39. if(currentTime-this.lastTime>5000){
  40. GameModel.single.killCount--;
  41. this.lastTime=currentTime;
  42. this.RefrechText();
  43. }
  44. }
  45. }
  46. RefrechText():void{
  47. let count:number;
  48. if(GameModel.single.killCount>999){
  49. count=999;
  50. }else{
  51. count=GameModel.single.killCount;
  52. }
  53. this.killCountText.string=count.toString();
  54. if(count==0){
  55. this.killCountGroup.active=false;
  56. }else{
  57. this.killCountGroup.active=true;
  58. }
  59. }
  60. }