加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 DarkLordLeon 于 2020-8-22 21:19 编辑
地图点击光标的代码在 rmmz_sprites.js 中,Sprite_Destination 对象
原始代码
Sprite_Destination.prototype.createBitmap = function() { //获取瓦片的宽和高,MZ默认是48*48 const tileWidth = $gameMap.tileWidth(); const tileHeight = $gameMap.tileHeight(); //创建一个BitMap,大小刚好覆盖一格 this.bitmap = new Bitmap(tileWidth, tileHeight); //填充成白色 this.bitmap.fillAll("white"); //设置锚点 this.anchor.x = 0.5; this.anchor.y = 0.5; //设置混合模式,1=线性减淡,更好的写法是 this.blendMode = PIXI.BLEND_MODES.ADD; this.blendMode = 1; };
Sprite_Destination.prototype.createBitmap = function() {
//获取瓦片的宽和高,MZ默认是48*48
const tileWidth = $gameMap.tileWidth();
const tileHeight = $gameMap.tileHeight();
//创建一个BitMap,大小刚好覆盖一格
this.bitmap = new Bitmap(tileWidth, tileHeight);
//填充成白色
this.bitmap.fillAll("white");
//设置锚点
this.anchor.x = 0.5;
this.anchor.y = 0.5;
//设置混合模式,1=线性减淡,更好的写法是 this.blendMode = PIXI.BLEND_MODES.ADD;
this.blendMode = 1;
};
锚点是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行
Sprite_Destination.prototype.createBitmap = function() { this.bitmap = Bitmap.load("img/mouse/cursor.png"); this.anchor.x = 0.5; this.anchor.y = 0.5; this.blendMode = 1; };
Sprite_Destination.prototype.createBitmap = function() {
this.bitmap = Bitmap.load("img/mouse/cursor.png");
this.anchor.x = 0.5;
this.anchor.y = 0.5;
this.blendMode = 1;
};
到此就已经替换了,下面代码可以更改箭头的跳动规则,请自行研究
这里相较原版,改动了透明度,变得更加不透明
PS: 透明度0-255,参见源码 rmmz_core.js 1919 行
Sprite_Destination.prototype.updateAnimation = function() { this._frameCount++; this._frameCount %= 20; this.opacity = (40 - this._frameCount) * 6; this.scale.x = 1 + this._frameCount / 20; this.scale.y = this.scale.x; };
Sprite_Destination.prototype.updateAnimation = function() {
this._frameCount++;
this._frameCount %= 20;
this.opacity = (40 - this._frameCount) * 6;
this.scale.x = 1 + this._frameCount / 20;
this.scale.y = this.scale.x;
};
|