移除fastlist(经测试比Array并没有快)
This commit is contained in:
@@ -4,7 +4,7 @@ module es {
|
||||
/**
|
||||
* 场景中添加的实体列表
|
||||
*/
|
||||
public _entities: FastList<Entity> = new FastList<Entity>();
|
||||
public _entities: Entity[] = [];
|
||||
/**
|
||||
* 本帧添加的实体列表。用于对实体进行分组,以便我们可以同时处理它们
|
||||
*/
|
||||
@@ -84,12 +84,12 @@ module es {
|
||||
this.updateLists();
|
||||
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
this._entities.buffer[i]._isDestroyed = true;
|
||||
this._entities.buffer[i].onRemovedFromScene();
|
||||
this._entities.buffer[i].scene = null;
|
||||
this._entities[i]._isDestroyed = true;
|
||||
this._entities[i].onRemovedFromScene();
|
||||
this._entities[i].scene = null;
|
||||
}
|
||||
|
||||
this._entities.clear();
|
||||
this._entities.length = 0;
|
||||
this._entityDict.clear();
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ module es {
|
||||
* @param entity
|
||||
*/
|
||||
public contains(entity: Entity): boolean {
|
||||
return this._entities.contains(entity) || this._entitiesToAdded.contains(entity);
|
||||
return new linq.List(this._entities).contains(entity) || this._entitiesToAdded.contains(entity);
|
||||
}
|
||||
|
||||
public getTagList(tag: number) {
|
||||
@@ -127,8 +127,7 @@ module es {
|
||||
}
|
||||
|
||||
public update() {
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
let entity = this._entities.buffer[i];
|
||||
for (let entity of this._entities) {
|
||||
if (entity.enabled && (entity.updateInterval == 1 || Time.frameCount % entity.updateInterval == 0))
|
||||
entity.update();
|
||||
}
|
||||
@@ -141,7 +140,7 @@ module es {
|
||||
this.removeFromTagList(entity);
|
||||
|
||||
// 处理常规实体列表
|
||||
this._entities.remove(entity);
|
||||
new linq.List(this._entities).remove(entity);
|
||||
entity.onRemovedFromScene();
|
||||
entity.scene = null;
|
||||
|
||||
@@ -153,7 +152,7 @@ module es {
|
||||
|
||||
if (this._entitiesToAdded.getCount() > 0) {
|
||||
this._entitiesToAdded.toArray().forEach(entity => {
|
||||
this._entities.add(entity);
|
||||
this._entities.push(entity);
|
||||
entity.scene = this.scene;
|
||||
|
||||
this.addToTagList(entity);
|
||||
@@ -171,7 +170,7 @@ module es {
|
||||
}
|
||||
|
||||
if (this._isEntityListUnsorted) {
|
||||
this._entities.sort(Entity.entityComparer);
|
||||
this._entities.sort(Entity.entityComparer.compare);
|
||||
this._isEntityListUnsorted = false;
|
||||
}
|
||||
|
||||
@@ -189,8 +188,8 @@ module es {
|
||||
*/
|
||||
public findEntity(name: string) {
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
if (this._entities.buffer[i].name == name)
|
||||
return this._entities.buffer[i];
|
||||
if (this._entities[i].name == name)
|
||||
return this._entities[i];
|
||||
}
|
||||
|
||||
for (let i = 0; i < this._entitiesToAdded.getCount(); i ++){
|
||||
@@ -226,8 +225,8 @@ module es {
|
||||
public entitiesOfType<T extends Entity>(type): T[] {
|
||||
let list = ListPool.obtain<T>();
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
if (this._entities.buffer[i] instanceof type)
|
||||
list.push(this._entities.buffer[i] as T);
|
||||
if (this._entities[i] instanceof type)
|
||||
list.push(this._entities[i] as T);
|
||||
}
|
||||
|
||||
for (let i = 0; i < this._entitiesToAdded.getCount(); i ++){
|
||||
@@ -246,8 +245,8 @@ module es {
|
||||
*/
|
||||
public findComponentOfType<T extends Component>(type): T {
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
if (this._entities.buffer[i].enabled) {
|
||||
let comp = this._entities.buffer[i].getComponent<T>(type);
|
||||
if (this._entities[i].enabled) {
|
||||
let comp = this._entities[i].getComponent<T>(type);
|
||||
if (comp)
|
||||
return comp;
|
||||
}
|
||||
@@ -273,8 +272,8 @@ module es {
|
||||
public findComponentsOfType<T extends Component>(type): T[] {
|
||||
let comps = ListPool.obtain<T>();
|
||||
for (let i = 0; i < this._entities.length; i++) {
|
||||
if (this._entities.buffer[i].enabled)
|
||||
this._entities.buffer[i].getComponents(type, comps);
|
||||
if (this._entities[i].enabled)
|
||||
this._entities[i].getComponents(type, comps);
|
||||
}
|
||||
|
||||
for (let i = 0; i < this._entitiesToAdded.getCount(); i++) {
|
||||
|
||||
Reference in New Issue
Block a user