本帖最后由 garfeng 于 2017-5-3 22:10 编辑
绘制的怪物在人物下方。
只改了一句:this._tilemap.addChild(this.sprite);
在同一个Texture/Container(容器)里的Sprite(精灵)可通过z值来设置相互之间的高度,
但如果容器都不一样,先后顺序则取决于容器的z,
你把自己新建的精灵放在Spriteset_Map的里,那么它应该和this._baseSprite/Tilemap来比z,
如果你想仅仅让它的z比character低,那么应该把它放在Tilemap的children里,
因为character是Tilemap的children,它的z值1/3/5,只对Tilemap的children里的其他精灵有效,对Tilemap外的其他容器或精灵无效。
不知道讲清楚了没有。
Spriteset_Map.prototype.createTilemap = function() { if (Graphics.isWebGL()) { this._tilemap = new ShaderTilemap(); } else { this._tilemap = new Tilemap(); } this._tilemap.tileWidth = $gameMap.tileWidth(); this._tilemap.tileHeight = $gameMap.tileHeight(); this._tilemap.setData($gameMap.width(), $gameMap.height(), $gameMap.data()); this._tilemap.horizontalWrap = $gameMap.isLoopHorizontal(); this._tilemap.verticalWrap = $gameMap.isLoopVertical(); this.loadTileset(); this._baseSprite.addChild(this._tilemap); this.sprite = new Sprite(); this.sprite.bitmap = ImageManager.loadCharacter('$BigMonster1'); this.sprite.setFrame(96, 96, 96, 96); this.sprite.x = ($gamePlayer.x ) * 48 - 18; this.sprite.y = ($gamePlayer.y ) * 48 + 12; this.sprite.z = 2; this._tilemap.addChild(this.sprite); // get player's coordinate };
Spriteset_Map.prototype.createTilemap = function() {
if (Graphics.isWebGL()) {
this._tilemap = new ShaderTilemap();
} else {
this._tilemap = new Tilemap();
}
this._tilemap.tileWidth = $gameMap.tileWidth();
this._tilemap.tileHeight = $gameMap.tileHeight();
this._tilemap.setData($gameMap.width(), $gameMap.height(), $gameMap.data());
this._tilemap.horizontalWrap = $gameMap.isLoopHorizontal();
this._tilemap.verticalWrap = $gameMap.isLoopVertical();
this.loadTileset();
this._baseSprite.addChild(this._tilemap);
this.sprite = new Sprite();
this.sprite.bitmap = ImageManager.loadCharacter('$BigMonster1');
this.sprite.setFrame(96, 96, 96, 96);
this.sprite.x = ($gamePlayer.x ) * 48 - 18;
this.sprite.y = ($gamePlayer.y ) * 48 + 12;
this.sprite.z = 2;
this._tilemap.addChild(this.sprite);
// get player's coordinate
};
自己弄alias吧
论如何一本正经的胡说八道
|