Project1

标题: 关于移动图片的脚本,等待完成代码时什么? [打印本页]

作者: rexuegg123    时间: 2018-10-28 12:48
标题: 关于移动图片的脚本,等待完成代码时什么?
我们知道移动图片代码时:$gameScreen.movePicture( 图片编号, 原点,  x,  y, x放大率, y放大率, 透明度,  合成方式, 执行的帧数 )

但这个代码没有等待图片移动完成的参数,所以在脚本里面用该代码,无法看到图片移动的效果……

所以那位大神能指点一下,等待完成的参数时什么,放在什么位置?  或者说,在用该代码的情况下,如何做才能实现等待该图片移动完成?

作者: tseyik    时间: 2018-10-28 13:35
http://tm.lucky-duet.com/viewtopic.php?f=5&t=2638
作者: wabcmcc    时间: 2018-10-29 00:10
要等待完成,請添加以下代碼.
例:$gameScreen.movePicture( 圖片編號, 原點, x, y, x放大率, y放大率, 透明度, 合成方式, 執行的幀數 )
     this.wait(等待時間)
出處:http://rpgmaker-script-wiki.xyz/movepic_mv.php

PS:我簽名檔機車,用事件頁,圖片制作.
作者: 芯☆淡茹水    时间: 2018-10-29 09:10
等待的代码不是一两句就能完成的,需要很多方面的配合。
首先,在 Game_Picture 里加一个函数判断,它是否在移动。
比如(移动的计数时间不为0,判断为正在移动):
Game_Picture.prototype.isMoving = function() {
    return !!this._duration;
};

然后,在图片的集合 Game_Screen 里,再加一个判断函数,判断它里面是否有某个图片在移动。
比如:
Game_Screen.prototype.somePictureMoving = function() {
    return this._pictures.some(function(picture){return picture && picture.isMoving();});
};

最后是等待移动完成,需要两个方面的等待:1,事件运行的暂停; 2,角色不能移动等待。
事件更改它的等待方式,比如:
var Old_Game_InterpreterUpdateWaitMode = Game_Interpreter.prototype.updateWaitMode;
Game_Interpreter.prototype.updateWaitMode = function() {
    return $gameScreen.somePictureMoving() || Old_Game_InterpreterUpdateWaitMode.call(this);
};

角色就更改他的是否能够移动的判断,比如:
var Old_Game_PlayerCanMove = Game_Player.prototype.canMove;
Game_Player.prototype.canMove = function() {
    return !$gameScreen.somePictureMoving() && Old_Game_PlayerCanMove.call(this);
};

这样改的效果,只要有一张图片在移动中,执行的事件会暂停,并且角色不能移动。
作者: 芯☆淡茹水    时间: 2018-10-29 17:02
Game_Screen 里面不是有直接根据 ID 获取对应图片的吗!
Game_Screen.prototype.picture = function(pictureId) {
    var realPictureId = this.realPictureId(pictureId);
    return this._pictures[realPictureId];
};
直接获取它就知道存不存在了,比如 11 号图片: if (!!$gameScreen.picture(11)) {}
也可以自己写一个专门用来判断的函数,可以再外加判断这个图片的不透明度不为 0:
Game_Screen.prototype.pictureIsShowing = function(pictureId) {
    return !!this.picture(pictureId) && !!this.picture(pictureId).opacity();
};

作者: tuxyin    时间: 2021-8-1 19:07
芯☆淡茹水 发表于 2018-10-29 09:10
等待的代码不是一两句就能完成的,需要很多方面的配合。
首先,在 Game_Picture 里加一个函数判断,它是否 ...

最近也在寻找这个问题的解决方案!谢谢分享




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