Project1
标题:
关于显示图片在角色下地图上的问题
[打印本页]
作者:
黛惠
时间:
2020-7-23 20:00
标题:
关于显示图片在角色下地图上的问题
希望能在角色之下、图块和事件之上显示图片,搜了一下显示图片脚本发现好像不能调整Z值
ulds感觉有点麻烦(挠头)有没有事件脚本可以实现这一点呢?
ps并不是要做烛光或者影子,所以这种类型的插件可能不太适合XD
作者:
play337
时间:
2020-7-23 20:22
角色之下、圖塊和事件之上顯示圖片.... <--- 這實在難以理解?
可以用圖片說明嗎?
作者:
congwsbn
时间:
2020-7-23 20:34
角色不动的话,可以用图片做个伪角色。
如果角色要动,还是建议用ulds来实现,这已经是比较简单的方法啦(。
作者:
芯☆淡茹水
时间:
2020-7-25 10:38
做地板花纹的话,图片是不会随着地图的卷动而更新坐标的。
至于将图片显示到地板之上,角色之下,那只是更改一下图片的 parent 的简单问题。
作者:
moonyoulove
时间:
2020-7-25 11:05
如下图,因为图片与角色的组别不同,所以即使更改z也没有用
scene_map组成.png
(175.51 KB, 下载次数: 25)
下载附件
保存到相册
2020-7-25 11:04 上传
作者:
芯☆淡茹水
时间:
2020-7-25 12:58
两个图层兜转一下就行了。
//==================================================================================================================
Game_Picture.prototype.isSpecialDisplay = function() {
return this._specialDisplay;
};
Game_Picture.prototype.changeSpecialDisplay = function(state) {
this._specialDisplay = !$gameParty.inBattle() && state;
};
//==================================================================================================================
var XR_SDPicture_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
XR_SDPicture_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'StartSpecialDisplay') {
$gameScreen.picture(+args[0]) && $gameScreen.picture(+args[0]).changeSpecialDisplay(true);
}
if (command === 'FinishSpecialDisplay') {
$gameScreen.picture(+args[0]) && $gameScreen.picture(+args[0]).changeSpecialDisplay(false);
}
};
//==================================================================================================================
Sprite_Picture.prototype.setSpecialDisplayed = function(state) {
this._specialDisplayed = state;
};
var XR_SDPicture_Sprite_Picture_update = Sprite_Picture.prototype.update;
Sprite_Picture.prototype.update = function() {
XR_SDPicture_Sprite_Picture_update.call(this);
this.updateSpecialDisplay();
};
Sprite_Picture.prototype.updateSpecialDisplay = function() {
if (!this.picture()) return;
if (this.picture().isSpecialDisplay()) {
!this.visible && this.picture().changeSpecialDisplay(false);
}
var type = null;
if (this._specialDisplayed) {
if (!this.picture().isSpecialDisplay()) type = 'restore';
} else {
if (this.picture().isSpecialDisplay()) type = 'convert';
}
if (type) {
var top = this.parent;
while (top.constructor !== Spriteset_Map) top = top.parent;
top[type+'PictureLayers'](this);
}
};
//==================================================================================================================
Spriteset_Map.prototype.convertPictureLayers = function(pictureSprite) {
pictureSprite.z = 3;
pictureSprite.setSpecialDisplayed(true);
this._pictureContainer.removeChild(pictureSprite);
this._tilemap.addChild(pictureSprite);
};
Spriteset_Map.prototype.restorePictureLayers = function(pictureSprite) {
pictureSprite.setSpecialDisplayed(false);
this._tilemap.removeChild(pictureSprite);
this._pictureContainer.addChild(pictureSprite);
};
//==================================================================================================================
复制代码
上面的代码写入到插件脚本里。
插件命令: 将5号图片置于地图上角色下 => StartSpecialDisplay 5
插件命令: 将显示在地图上角色下的8号图片还原 => FinishSpecialDisplay 8
在消除图片时,也会自动还原
作者:
雪在燃
时间:
2020-7-25 23:11
https://rpg.blue/thread-403790-1-1.html
区域作为图层使用23333
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1