修复entityList获取实体失败问题

This commit is contained in:
yhh
2020-12-02 15:42:55 +08:00
parent f9284e9d8e
commit b2ebd5ee94
4 changed files with 24 additions and 24 deletions

View File

@@ -1157,7 +1157,7 @@ declare module es {
* 返回第一个找到的名字为name的实体。如果没有找到则返回null
* @param name
*/
findEntity(name: string): any;
findEntity(name: string): Entity;
/**
* 返回带有标签的所有实体的列表。如果没有实体有标签,则返回一个空列表。
* 返回的List可以通过ListPool.free放回池中

View File

@@ -2653,11 +2653,11 @@ var es;
// 它们仍然会在_entitiesToRemove列表中这将由updateLists处理。
this.updateLists();
for (var i = 0; i < this._entities.length; i++) {
this._entities[i]._isDestroyed = true;
this._entities[i].onRemovedFromScene();
this._entities[i].scene = null;
this._entities.buffer[i]._isDestroyed = true;
this._entities.buffer[i].onRemovedFromScene();
this._entities.buffer[i].scene = null;
}
this._entities.length = 0;
this._entities.clear();
this._entityDict.clear();
};
/**
@@ -2741,8 +2741,8 @@ var es;
*/
EntityList.prototype.findEntity = function (name) {
for (var i = 0; i < this._entities.length; i++) {
if (this._entities[i].name == name)
return this._entities[i];
if (this._entities.buffer[i].name == name)
return this._entities.buffer[i];
}
for (var i = 0; i < this._entitiesToAdded.getCount(); i++) {
var entity = this._entitiesToAdded.toArray()[i];
@@ -2772,8 +2772,8 @@ var es;
EntityList.prototype.entitiesOfType = function (type) {
var list = es.ListPool.obtain();
for (var i = 0; i < this._entities.length; i++) {
if (this._entities[i] instanceof type)
list.push(this._entities[i]);
if (this._entities.buffer[i] instanceof type)
list.push(this._entities.buffer[i]);
}
for (var i = 0; i < this._entitiesToAdded.getCount(); i++) {
var entity = this._entitiesToAdded.toArray()[i];
@@ -2789,7 +2789,7 @@ var es;
*/
EntityList.prototype.findComponentOfType = function (type) {
for (var i = 0; i < this._entities.length; i++) {
if (this._entities[i].enabled) {
if (this._entities.buffer[i].enabled) {
var comp = this._entities.buffer[i].getComponent(type);
if (comp)
return comp;
@@ -2813,8 +2813,8 @@ var es;
EntityList.prototype.findComponentsOfType = function (type) {
var comps = es.ListPool.obtain();
for (var i = 0; i < this._entities.length; i++) {
if (this._entities[i].enabled)
this._entities[i].getComponents(type, comps);
if (this._entities.buffer[i].enabled)
this._entities.buffer[i].getComponents(type, comps);
}
for (var i = 0; i < this._entitiesToAdded.getCount(); i++) {
var entity = this._entitiesToAdded.toArray()[i];

File diff suppressed because one or more lines are too long

View File

@@ -84,12 +84,12 @@ module es {
this.updateLists();
for (let i = 0; i < this._entities.length; i++) {
this._entities[i]._isDestroyed = true;
this._entities[i].onRemovedFromScene();
this._entities[i].scene = null;
this._entities.buffer[i]._isDestroyed = true;
this._entities.buffer[i].onRemovedFromScene();
this._entities.buffer[i].scene = null;
}
this._entities.length = 0;
this._entities.clear();
this._entityDict.clear();
}
@@ -191,8 +191,8 @@ module es {
*/
public findEntity(name: string) {
for (let i = 0; i < this._entities.length; i++) {
if (this._entities[i].name == name)
return this._entities[i];
if (this._entities.buffer[i].name == name)
return this._entities.buffer[i];
}
for (let i = 0; i < this._entitiesToAdded.getCount(); i ++){
@@ -228,8 +228,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[i] instanceof type)
list.push(this._entities[i] as T);
if (this._entities.buffer[i] instanceof type)
list.push(this._entities.buffer[i] as T);
}
for (let i = 0; i < this._entitiesToAdded.getCount(); i ++){
@@ -248,7 +248,7 @@ module es {
*/
public findComponentOfType<T extends Component>(type): T {
for (let i = 0; i < this._entities.length; i++) {
if (this._entities[i].enabled) {
if (this._entities.buffer[i].enabled) {
let comp = this._entities.buffer[i].getComponent<T>(type);
if (comp)
return comp;
@@ -275,8 +275,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[i].enabled)
this._entities[i].getComponents(type, comps);
if (this._entities.buffer[i].enabled)
this._entities.buffer[i].getComponents(type, comps);
}
for (let i = 0; i < this._entitiesToAdded.getCount(); i++) {