demo 更新

This commit is contained in:
yhh
2020-08-21 19:21:40 +08:00
parent 6d4d787530
commit 646d1806ec
144 changed files with 51196 additions and 2531 deletions

View File

@@ -1536,6 +1536,9 @@ var es;
Entity.prototype.update = function () {
this.components.update();
};
Entity.prototype.debugRender = function () {
this.components.debugRender();
};
Entity.prototype.addComponent = function (component) {
component.entity = this;
this.components.add(component);
@@ -2712,6 +2715,8 @@ var es;
this._areBoundsDirty = true;
};
RenderableComponent.prototype.isVisibleFromCamera = function (camera) {
if (!camera)
return false;
this.isVisible = camera.bounds.intersects(this.displayObject.getBounds().union(this.bounds));
return this.isVisible;
};
@@ -4230,6 +4235,12 @@ var es;
for (var i = 0; i < this._components.length; i++)
this._components[i].onDisabled();
};
ComponentList.prototype.debugRender = function () {
for (var i = 0; i < this._components.length; i++) {
if (this._components[i].enabled)
this._components[i].debugRender();
}
};
ComponentList.compareUpdatableOrder = new es.IUpdatableComparer();
return ComponentList;
}());
@@ -5444,9 +5455,17 @@ var es;
function Renderer(renderOrder, camera) {
if (camera === void 0) { camera = null; }
this.renderOrder = 0;
this.shouldDebugRender = true;
this.camera = camera;
this.renderOrder = renderOrder;
}
Object.defineProperty(Renderer.prototype, "wantsToRenderToSceneRenderTarget", {
get: function () {
return !!this.renderTexture;
},
enumerable: true,
configurable: true
});
Renderer.prototype.onAddedToScene = function (scene) {
};
Renderer.prototype.unload = function () {
@@ -5461,6 +5480,13 @@ var es;
Renderer.prototype.renderAfterStateCheck = function (renderable, cam) {
renderable.render(cam);
};
Renderer.prototype.debugRender = function (scene, cam) {
for (var i = 0; i < scene.entities.count; i++) {
var entity = scene.entities.buffer[i];
if (entity.enabled)
entity.debugRender();
}
};
return Renderer;
}());
es.Renderer = Renderer;
@@ -5486,13 +5512,85 @@ var es;
es.DefaultRenderer = DefaultRenderer;
})(es || (es = {}));
var es;
(function (es) {
var RenderLayerExcludeRenderer = (function (_super) {
__extends(RenderLayerExcludeRenderer, _super);
function RenderLayerExcludeRenderer(renderOrder) {
var excludedRenderLayers = [];
for (var _i = 1; _i < arguments.length; _i++) {
excludedRenderLayers[_i - 1] = arguments[_i];
}
var _this = _super.call(this, renderOrder, null) || this;
_this.excludedRenderLayers = excludedRenderLayers;
return _this;
}
RenderLayerExcludeRenderer.prototype.render = function (scene) {
var cam = this.camera ? this.camera : scene.camera;
this.beginRender(cam);
for (var i = 0; i < scene.renderableComponents.count; i++) {
var renderable = scene.renderableComponents.buffer[i];
if (!this.excludedRenderLayers.contains(renderable.renderLayer) && renderable.enabled &&
renderable.isVisibleFromCamera(cam))
this.renderAfterStateCheck(renderable, cam);
}
if (this.shouldDebugRender && es.Core.debugRenderEndabled)
this.debugRender(scene, cam);
};
RenderLayerExcludeRenderer.prototype.debugRender = function (scene, cam) {
for (var i = 0; i < scene.renderableComponents.count; i++) {
var renderable = scene.renderableComponents.buffer[i];
if (!this.excludedRenderLayers.contains(renderable.renderLayer) && renderable.enabled &&
renderable.isVisibleFromCamera(cam))
renderable.debugRender();
}
_super.prototype.debugRender.call(this, scene, cam);
};
return RenderLayerExcludeRenderer;
}(es.Renderer));
es.RenderLayerExcludeRenderer = RenderLayerExcludeRenderer;
})(es || (es = {}));
var es;
(function (es) {
var ScreenSpaceRenderer = (function (_super) {
__extends(ScreenSpaceRenderer, _super);
function ScreenSpaceRenderer() {
return _super !== null && _super.apply(this, arguments) || this;
function ScreenSpaceRenderer(renderOrder) {
var renderLayers = [];
for (var _i = 1; _i < arguments.length; _i++) {
renderLayers[_i - 1] = arguments[_i];
}
var _this = _super.call(this, renderOrder, null) || this;
renderLayers.sort();
renderLayers.reverse();
_this.renderLayers = renderLayers;
return _this;
}
ScreenSpaceRenderer.prototype.render = function (scene) {
this.beginRender(this.camera);
for (var i = 0; i < this.renderLayers.length; i++) {
var renderables = scene.renderableComponents.componentsWithRenderLayer(this.renderLayers[i]);
for (var j = 0; j < renderables.length; j++) {
var renderable = renderables[j];
if (renderable.enabled && renderable.isVisibleFromCamera(this.camera))
this.renderAfterStateCheck(renderable, this.camera);
}
}
if (this.shouldDebugRender && es.Core.debugRenderEndabled)
this.debugRender(scene, this.camera);
};
ScreenSpaceRenderer.prototype.debugRender = function (scene, cam) {
for (var i = 0; i < this.renderLayers.length; i++) {
var renderables = scene.renderableComponents.componentsWithRenderLayer(this.renderLayers[i]);
for (var j = 0; j < renderables.length; j++) {
var entity = renderables[j];
if (entity.enabled)
entity.debugRender();
}
}
};
ScreenSpaceRenderer.prototype.onSceneBackBufferSizeChanged = function (newWidth, newHeight) {
_super.prototype.onSceneBackBufferSizeChanged.call(this, newWidth, newHeight);
if (!this.camera)
this.camera = es.Core.scene.createEntity("screenspace camera").addComponent(new es.Camera());
};
return ScreenSpaceRenderer;
}(es.Renderer));
@@ -8102,22 +8200,21 @@ var es;
};
TiledMapLoader.parseTmxTileset = function (map, xTileset) {
return __awaiter(this, void 0, void 0, function () {
var xFirstGid, firstGid, source, xDocTileset, tileset;
var xFirstGid, firstGid, source, xDocTileset;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
xFirstGid = xTileset["firstgid"];
firstGid = xFirstGid;
source = xTileset["image"];
source = xTileset["source"];
if (!(source != undefined)) return [3, 2];
source = map.tmxDirectory + source;
return [4, RES.getResByUrl(source, null, this, RES.ResourceItem.TYPE_IMAGE).catch(function (err) {
return [4, RES.getResByUrl(source).catch(function (err) {
throw new Error(err);
})];
case 1:
xDocTileset = _a.sent();
tileset = this.loadTmxTileset(new es.TmxTileset(), map, xDocTileset["tileset"], firstGid);
return [2, tileset];
return [2, this.loadTmxTileset(new es.TmxTileset(), map, xDocTileset["tileset"], firstGid)];
case 2: return [2, this.loadTmxTileset(new es.TmxTileset(), map, xTileset, firstGid)];
}
});
@@ -8125,9 +8222,9 @@ var es;
};
TiledMapLoader.loadTmxTileset = function (tileset, map, xTileset, firstGid) {
return __awaiter(this, void 0, void 0, function () {
var xImage, _a, _i, _b, e, _c, _d, _e, t, xTile, tile, id, y, column, x;
return __generator(this, function (_f) {
switch (_f.label) {
var xImage, _i, _a, e, _b, _c, _d, t, xTile, tile, id, y, column, x;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
tileset.map = map;
tileset.firstGid = firstGid;
@@ -8141,38 +8238,39 @@ var es;
tileset.tileOffset = this.parseTmxTileOffset(xTileset["tileoffset"]);
xImage = xTileset["image"];
if (!xImage) return [3, 2];
_a = tileset;
return [4, this.loadTmxImage(new es.TmxImage(), xTileset, map.tmxDirectory).catch(function (err) {
return [4, this.loadTmxImage(new es.TmxImage(), xTileset, map.tmxDirectory).then(function (image) {
tileset.image = image;
}).catch(function (err) {
throw new Error(err);
})];
case 1:
_a.image = _f.sent();
_f.label = 2;
_e.sent();
_e.label = 2;
case 2:
tileset.terrains = [];
if (xTileset["terrains"])
for (_i = 0, _b = xTileset["terrains"]; _i < _b.length; _i++) {
e = _b[_i];
for (_i = 0, _a = xTileset["terrains"]; _i < _a.length; _i++) {
e = _a[_i];
tileset.terrains.push(this.parseTmxTerrain(e));
}
tileset.tiles = new Map();
_c = [];
for (_d in xTileset["tiles"])
_c.push(_d);
_e = 0;
_f.label = 3;
_b = [];
for (_c in xTileset["tiles"])
_b.push(_c);
_d = 0;
_e.label = 3;
case 3:
if (!(_e < _c.length)) return [3, 6];
t = _c[_e];
if (!(_d < _b.length)) return [3, 6];
t = _b[_d];
if (!xTileset["tiles"].hasOwnProperty(t)) return [3, 5];
xTile = xTileset["tiles"][t];
return [4, this.loadTmxTilesetTile(new es.TmxTilesetTile(), tileset, xTile, tileset.terrains, map.tmxDirectory)];
case 4:
tile = _f.sent();
tile = _e.sent();
tileset.tiles.set(tile.id == undefined ? Number(t) + 1 : tile.id, tile);
_f.label = 5;
_e.label = 5;
case 5:
_e++;
_d++;
return [3, 3];
case 6:
tileset.properties = this.parsePropertyDict(xTileset["properties"]);