Project1

标题: 如何用脚本即时改变地图的图块影像 [打印本页]

作者: 任小雪    时间: 2021-10-7 16:52
标题: 如何用脚本即时改变地图的图块影像
本帖最后由 任小雪 于 2021-10-7 16:54 编辑

主要是p图太麻烦,数量一多就时间成本特别大。
我的目的就是类似于给庄园换另一副风格的地图那样,如果用传送的话,地图ID的改变我有点怕影响游戏运作,容易出bug(我用到了地图ID这个变量)。
所以,有没有在data文件里改地图的法子,一两句代码的那种(偏偏地图在即时改data文件变得棘手啊)。

如果是插件的法子就算了,一方面对技术没啥提升(脚本法子这几个月确实让我觉得有所收获),一方面主要是插件是别人的,起争端就爆炸(我选择稳一手)。
作者: 清澈淌漾    时间: 2021-10-7 16:52
地图整个是个场景类 自己看看事件-改变地图图块
作者: 任小雪    时间: 2021-10-13 19:59
◆脚本:Game_Map.prototype.data = function() {
:  :    return [3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3968,3972,3996,3996,3996,3996,3996,3976,3968,3968,3972,3996,3996,3996,3996,3996,3976,3968,3992,1608,1608,1608,1608,1608,3984,3968,3968,3992,5123,5122,5122,5122,5126,3984,3968,3992,1609,1609,1609,1609,1609,3984,3968,3968,3992,5129,5128,5128,5128,5132,3984,3968,3992,1609,1609,1609,1609,1609,3984,3968,3968,3992,5507,5506,5506,5506,5510,3984,3968,3992,1609,1609,1609,1609,1609,3984,3968,3968,3992,5513,5512,5512,5512,5516,3984,3968,3992,1616,1616,1616,1616,1616,3986,3996,3976,3970,3988,3988,3988,3988,3989,3997,3968,3970,3988,3988,3988,3988,3988,3994,4062,3984,3968,3968,3968,3972,3996,4006,2274,3972,3996,3996,3996,3996,3996,3976,3970,3988,3969,3968,3972,3996,4006,2274,2260,2241,3992,4050,4036,4036,4036,4052,3984,3968,3968,3968,3972,4006,2274,2260,2241,2244,2268,3992,4032,4016,4016,4020,4054,3984,3968,3972,3996,4006,2274,2241,2240,2244,2278,4002,3992,4056,4044,4044,4054,4002,3973,3996,4006,2274,2260,2241,2244,2268,2278,4002,3969,3970,3988,3988,3988,3988,3969,3992,2274,2260,2241,2240,2240,2264,4002,3988,3969,3968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,0,0,0,0,72,0,0,132,0,0,0,0,0,0,0,0,165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45,70,37,0,0,0,0,0,0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
:  :};
◆场所移动:魔塔-1层(庄园) (8,6) (淡入淡出: 无)
◆注释:直接整个地图换图块的范例
:  :(最基础版,有bug的,要改进)
作者: 清澈淌漾    时间: 2021-10-13 20:21
如果只换地图不换事件 ,为什么不动态渲染事件呢
作者: 任小雪    时间: 2021-10-14 20:43
本帖最后由 任小雪 于 2021-10-15 03:17 编辑

本层发现有误,作废
作者: 任小雪    时间: 2021-10-22 04:09

◆脚本:Window_MapName.prototype.initialize = function() {
:  :    var wight = this.windowWidth();
:  :    var height = this.windowHeight();
:  :    Window_Base.prototype.initialize.call(this, 0, 0, wight, height);
:  :    this.opacity = 0;
:  :    this.contentsOpacity = 0;
:  :    this._showCount = Infinity;
:  :    this.refresh();
:  :};
作者: 在野月光族    时间: 2021-10-24 18:42





作者: 任小雪    时间: 2022-2-21 15:02
本帖最后由 任小雪 于 2022-2-21 15:04 编辑

回首往昔,鹿大佬是真的牛皮,我现在终于看得懂了,不过暂时又不怎么用的上了(因为采取了另外的相对很鸡肋的法子,图片显示加事件作阻挡)
作者: laoyao    时间: 2022-4-25 09:08
在野月光族 发表于 2021-10-24 18:42

大佬,用你的这个方法,如何解决进入商店、主菜单等之后返回地图时,地图刷新成原先样子的问题呀?求解答,谢谢。
作者: 芯☆淡茹水    时间: 2022-4-25 11:18
自行改成MV就行了

【MZ】更改地图上的图块.rar (1.62 KB, 下载次数: 31)
作者: laoyao    时间: 2022-4-25 11:22
laoyao 发表于 2022-4-25 09:08
大佬,用你的这个方法,如何解决进入商店、主菜单等之后返回地图时,地图刷新成原先样子的问题呀?求解答 ...

现在一个奇怪的现象,我刚用
$dataMap.data[posi] =tileno;这种语句去改了图块
mapnow=SceneManager._scene._spriteset._tilemap;
mapnow.refresh(); 都能够正常显示我修改后的图块
但是马上去查$dataMap.data   结果发现还是原先json文件里的data值
所以这也是导致我,使用菜单一返回,就又变回原来的了。
作者: laoyao    时间: 2022-4-25 11:40
laoyao 发表于 2022-4-25 11:22
现在一个奇怪的现象,我刚用
$dataMap.data =tileno;这种语句去改了图块
mapnow=SceneManager._scene._sp ...

那如何去读取改变后的?  $dataMap.data[X]=y;  这不就是修改了$dataMap.data么?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1