Project1

标题: 【MZ】【脚本教程】四行代码替换地图点击光标 [打印本页]

作者: DarkLordLeon    时间: 2020-8-22 21:09
标题: 【MZ】【脚本教程】四行代码替换地图点击光标
本帖最后由 DarkLordLeon 于 2020-8-22 21:19 编辑

地图点击光标的代码在 rmmz_sprites.js 中,Sprite_Destination 对象

原始代码
JAVASCRIPT 代码复制
  1. Sprite_Destination.prototype.createBitmap = function() {
  2.     //获取瓦片的宽和高,MZ默认是48*48
  3.     const tileWidth = $gameMap.tileWidth();
  4.     const tileHeight = $gameMap.tileHeight();
  5.     //创建一个BitMap,大小刚好覆盖一格
  6.     this.bitmap = new Bitmap(tileWidth, tileHeight);
  7.     //填充成白色
  8.     this.bitmap.fillAll("white");
  9.     //设置锚点
  10.     this.anchor.x = 0.5;
  11.     this.anchor.y = 0.5;
  12.     //设置混合模式,1=线性减淡,更好的写法是 this.blendMode = PIXI.BLEND_MODES.ADD;
  13.     this.blendMode = 1;
  14. };


锚点是PIXI.js的属性,可以理解为以哪个点为中心,(0.5,0.5)是BitMap的正中心
混合模式也是PIXI.js的属性,参见PIXI.js官方文档
注:PIXI.js中很多地方都有blendMode,Sprite_Destination是一个Sprite,而Sprite是PIXI.Sprite,可以在initialize()方法中看到

我们只需要把创建Bitmap改为load一张png(尺寸最好48*48),就可以把闪动的白块替换成想要的图标

在plugins下新建一个js文件,命名为 AltCursor.js
覆盖 Sprite_Destination 的 createBitMap 方法,改为从img/mouse文件夹下load cursor.png 文件
文档 https://developer.rpgmakerweb.com/rpg-maker-mz/Bitmap.html
PS: 标题说的4行代码,就是中间4行

JAVASCRIPT 代码复制
  1. Sprite_Destination.prototype.createBitmap = function() {
  2.     this.bitmap = Bitmap.load("img/mouse/cursor.png");
  3.     this.anchor.x = 0.5;
  4.     this.anchor.y = 0.5;
  5.     this.blendMode = 1;
  6. };


到此就已经替换了,下面代码可以更改箭头的跳动规则,请自行研究
这里相较原版,改动了透明度,变得更加不透明
PS: 透明度0-255,参见源码 rmmz_core.js 1919 行

JAVASCRIPT 代码复制
  1. Sprite_Destination.prototype.updateAnimation = function() {
  2.     this._frameCount++;
  3.     this._frameCount %= 20;
  4.     this.opacity = (40 - this._frameCount) * 6;
  5.     this.scale.x = 1 + this._frameCount / 20;
  6.     this.scale.y = this.scale.x;
  7. };


作者: 走出300加    时间: 2020-8-22 22:30
是哪位大佬的小号?
作者: walf_man    时间: 2020-8-23 23:26
这很可以,其实就是替换了一行,剩下三行都没做改变
作者: hsy_999999999    时间: 2021-1-11 21:01
最后这段是在Sprite.js4000多行吗? rmmz_core.js 1919 行没找到
作者: hsy_999999999    时间: 2021-1-11 21:03
最后这段是在Sprite.js4000多行吗? rmmz_core.js 1919 行没找到
作者: 1805796591    时间: 2021-1-17 16:35
非常好用,谢谢!
作者: wodeshow    时间: 2021-1-18 02:50
这个厉害了,谢谢分享!!!!!!!!!!!!!!!!
作者: infor0808    时间: 2021-6-17 09:20
谢谢分享,终于把这可恶的白块去掉了
作者: robinjie    时间: 2021-6-18 11:05
大佬牛掰,摩拜大佬!!




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