设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5144|回复: 10
打印 上一主题 下一主题

[有事请教] 关于移动图片的脚本,等待完成代码时什么?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2346
在线时间
168 小时
注册时间
2017-4-25
帖子
219
跳转到指定楼层
1
发表于 2018-10-28 12:48:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
我们知道移动图片代码时:$gameScreen.movePicture( 图片编号, 原点,  x,  y, x放大率, y放大率, 透明度,  合成方式, 执行的帧数 )

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

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

Lv5.捕梦者

梦石
0
星屑
23048
在线时间
8646 小时
注册时间
2011-12-31
帖子
3367
2
发表于 2018-10-28 13:35:40 | 只看该作者
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
16104
在线时间
3996 小时
注册时间
2015-9-14
帖子
1337

开拓者

3
发表于 2018-10-29 00:10:56 | 只看该作者
要等待完成,請添加以下代碼.
例:$gameScreen.movePicture( 圖片編號, 原點, x, y, x放大率, y放大率, 透明度, 合成方式, 執行的幀數 )
     this.wait(等待時間)
出處:http://rpgmaker-script-wiki.xyz/movepic_mv.php

PS:我簽名檔機車,用事件頁,圖片制作.

点评

我试过了,this.wait(n),在事件的脚本里可以用,但在插件里用就会出错,为什么呢?  发表于 2018-11-19 20:03
好的,我试试。  发表于 2018-10-29 13:53
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33591
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2018-10-29 09:10:27 | 只看该作者
等待的代码不是一两句就能完成的,需要很多方面的配合。
首先,在 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);
};

这样改的效果,只要有一张图片在移动中,执行的事件会暂停,并且角色不能移动。

点评

就是怎么判断某编号有图片显示。比如:我想知道图片显示编号为11的位置有无图片显示……  发表于 2018-10-29 15:07
谢谢大神,辛苦了!收藏,慢慢弄。对了,在问一下:判断图片已经显示的代码时什么?  发表于 2018-10-29 13:53
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33591
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2018-10-29 17:02:38 | 只看该作者
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();
};

点评

哈哈,太感谢了!  发表于 2018-10-29 18:03
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1282
在线时间
257 小时
注册时间
2021-2-16
帖子
247
6
发表于 2021-8-1 19:07:55 | 只看该作者
芯☆淡茹水 发表于 2018-10-29 09:10
等待的代码不是一两句就能完成的,需要很多方面的配合。
首先,在 Game_Picture 里加一个函数判断,它是否 ...

最近也在寻找这个问题的解决方案!谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-18 14:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表