BasicManager.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import BasicObject from "./BasicObject";
  2. /**
  3. * 基础管理器 - 逻辑层
  4. */
  5. export default abstract class BasicManager extends BasicObject {
  6. /**帧循环组件列表 */
  7. protected updateComponents: Map<any, Map<any, BasicObject>>;
  8. constructor () {
  9. super();
  10. this.updateComponents = new Map<any, Map<any, BasicObject>>();
  11. }
  12. public _update (dt: number): void {
  13. this.updateComponents.forEach((values: Map<any, BasicObject>, i: any) => {
  14. let length = values.size;
  15. values.forEach((value: BasicObject, j: any) => {
  16. if (value.isUpdate == true) {
  17. if (value.isValid == false || value.isDestroy == true) {
  18. values.delete(j);
  19. }
  20. else {
  21. if (value != null && value.enabled == true) {
  22. value._update(dt);
  23. }
  24. }
  25. }
  26. });
  27. // 长度发生变化
  28. if (length != values.size) {
  29. if (values.size > 0) {
  30. this.updateComponents.set(i, values);
  31. }
  32. else {
  33. this.updateComponents.delete(i);
  34. }
  35. }
  36. });
  37. }
  38. }