474 lines
No EOL
14 KiB
JavaScript
474 lines
No EOL
14 KiB
JavaScript
//===========================================================================
|
|
// MOG_DestinationPointer.js
|
|
// Translate to Japanese : fungamemake.com
|
|
//===========================================================================
|
|
|
|
/*:
|
|
* @plugindesc (v1.0) Permite customizar a imagem do cursor do destino.
|
|
* @author Moghunter
|
|
*
|
|
* @param X-Axis Offset
|
|
* @desc Posição X-Axis do cursor.
|
|
* @default 0
|
|
*
|
|
* @param Y-Axis Offset
|
|
* @desc Posição Y-Axis do cursor.
|
|
* @default 0
|
|
*
|
|
* @param Smooth Movement
|
|
* @desc Ativar movimento suave.
|
|
* @default true
|
|
*
|
|
* @param Zoom Animation
|
|
* @desc Ativar a animação de zoom.
|
|
* @default false
|
|
*
|
|
* @param Blink Animation
|
|
* @desc Ativar a animação de piscar.
|
|
* @default false
|
|
*
|
|
* @param Float Animation
|
|
* @desc Ativar a animação de levitação.
|
|
* @default true
|
|
*
|
|
* @param Blend Mode
|
|
* @desc Definição do modo de blend. (0..2)
|
|
* @default 0
|
|
*
|
|
* @param Rotation Speed
|
|
* @desc Definição da velocidade de rotação da imagem.
|
|
* @default 0
|
|
*
|
|
* @param Number of Frames
|
|
* @desc Definição da quantidade de frames da imagem.
|
|
* A imagem será dividida pela quantidade de frames.
|
|
* @default 1
|
|
*
|
|
* @param Animation Speed
|
|
* @desc Definição da velocidade da animação de frames.
|
|
* @default 4
|
|
*
|
|
* @help
|
|
* ===========================================================================
|
|
* +++ MOG - Destination Pointer (v1.0) +++
|
|
* By Moghunter
|
|
* https://atelierrgss.wordpress.com/
|
|
* ===========================================================================
|
|
* Permite customizar a imagem do cursor do destino.
|
|
* - Animação por frames de imagens.
|
|
* - Movimento suave.
|
|
* - Permiter ativar ou desativar os efeitos de zoom ou fade.
|
|
*
|
|
* ===========================================================================
|
|
* UTILIZAÇÃO
|
|
* ===========================================================================
|
|
* Serão necessários as imagens.
|
|
*
|
|
* Destination.png
|
|
* Destination_Shadow.png
|
|
*
|
|
* Grave a imagem na pasta (img/system/)
|
|
*/
|
|
|
|
/*:ja
|
|
* @target MV MZ
|
|
* @plugindesc (v1.0) マップ移動時の行先ポインタの画像をカスタマイズできます。
|
|
* @author Moghunter
|
|
*
|
|
* @param X-Axis Offset
|
|
* @text 行先ポインタのX軸位置
|
|
* @default 0
|
|
*
|
|
* @param Y-Axis Offset
|
|
* @text 行先ポインタのY軸位置
|
|
* @default 0
|
|
*
|
|
* @param Smooth Movement
|
|
* @text スムーズなモーションの有効化
|
|
* @type boolean
|
|
* @on 有効
|
|
* @off 無効
|
|
* @default true
|
|
*
|
|
* @param Zoom Animation
|
|
* @text ズームアニメの有効化
|
|
* @type boolean
|
|
* @on 有効
|
|
* @off 無効
|
|
* @default false
|
|
*
|
|
* @param Blink Animation
|
|
* @text 点滅アニメの有効化
|
|
* @type boolean
|
|
* @on 有効
|
|
* @off 無効
|
|
* @default false
|
|
*
|
|
* @param Float Animation
|
|
* @text フロートアニメの有効化
|
|
* @type boolean
|
|
* @on 有効
|
|
* @off 無効
|
|
* @default true
|
|
*
|
|
* @param Blend Mode
|
|
* @text 合成方法
|
|
* @desc 0:通常 / 1:加算 / 2:乗算
|
|
* @type select
|
|
* @option 通常
|
|
* @value 0
|
|
* @option 加算
|
|
* @value 1
|
|
* @option 乗算
|
|
* @value 2
|
|
* @default 0
|
|
*
|
|
* @param Rotation Speed
|
|
* @text 回転速度
|
|
* @desc 正:時計回り / 負:反時計回り。絶対値が大きいほど高速。0で停止。少数推奨
|
|
* @default 0
|
|
*
|
|
* @param Number of Frames
|
|
* @text 画像のフレーム数
|
|
* @desc 画像がフレーム数で横に分割されます。
|
|
* @default 1
|
|
*
|
|
* @param Animation Speed
|
|
* @text フレームアニメ速度
|
|
* @desc フレーム間のウェイト量。
|
|
* @default 4
|
|
*
|
|
* @help
|
|
* 翻訳:ムノクラ
|
|
* https://fungamemake.com/
|
|
* https://twitter.com/munokura/
|
|
*
|
|
* ===========================================================================
|
|
* +++ MOG - Destination Pointer (v1.0) +++
|
|
* By Moghunter
|
|
* https://atelierrgss.wordpress.com/
|
|
* ===========================================================================
|
|
* マップ移動時の行先ポインタの画像をカスタマイズできます。
|
|
* - 画像のフレームによるアニメーション
|
|
* - スムーズな動き
|
|
* - ズーム/フェード効果を有効/無効
|
|
*
|
|
* ===========================================================================
|
|
* 必要ファイル
|
|
* ===========================================================================
|
|
* 下記の画像が必要になります。
|
|
* 下記のフォルダへ保存してください。
|
|
* (img/system/)
|
|
*
|
|
* Destination.png
|
|
* Destination_Shadow.png
|
|
*
|
|
*/
|
|
|
|
//===========================================================================
|
|
// ** PLUGIN PARAMETERS
|
|
//===========================================================================
|
|
var Imported = Imported || {};
|
|
Imported.MOG_DestinationCursor = true;
|
|
var Moghunter = Moghunter || {};
|
|
|
|
Moghunter.parameters = PluginManager.parameters('MOG_DestinationPointer');
|
|
Moghunter.destCursor_X = Number(Moghunter.parameters['X-Axis Offset'] || 0);
|
|
Moghunter.destCursor_Y = Number(Moghunter.parameters['Y-Axis Offset'] || 0);
|
|
Moghunter.destCursor_slide = String(Moghunter.parameters['Smooth Movement'] || 'true');
|
|
Moghunter.destCursor_BlendMode = Number(Moghunter.parameters['Blend Mode'] || 0);
|
|
Moghunter.destCursor_Rotation = Number(Moghunter.parameters['Rotation Speed'] || 0);
|
|
Moghunter.destCursor_Zoom = String(Moghunter.parameters['Zoom Animation'] || 'false');
|
|
Moghunter.destCursor_Fade = String(Moghunter.parameters['Blink Animation'] || 'false');
|
|
Moghunter.destCursor_Float = String(Moghunter.parameters['Float Animation'] || 'true');
|
|
Moghunter.destCursor_Frames = Number(Moghunter.parameters['Number of Frames'] || 1);
|
|
Moghunter.destCursor_FramesSpeed = Number(Moghunter.parameters['Animation Speed'] || 1);
|
|
|
|
//===========================================================================
|
|
// ** Spriteset Map
|
|
//===========================================================================
|
|
|
|
//==============================
|
|
// * create Destination
|
|
//==============================
|
|
// >>>>>>> Overwritten Function >>>>>>
|
|
Spriteset_Map.prototype.createDestination = function () {
|
|
this._destinationSprite = new Sprite_DestinationPointer();
|
|
this._destinationSprite.z = 9;
|
|
this._tilemap.addChild(this._destinationSprite);
|
|
};
|
|
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
|
|
|
//===========================================================================
|
|
// ** Sprite_Destination Pointer
|
|
//===========================================================================
|
|
function Sprite_DestinationPointer() {
|
|
this.initialize.apply(this, arguments);
|
|
}
|
|
|
|
Sprite_DestinationPointer.prototype = Object.create(Sprite.prototype);
|
|
Sprite_DestinationPointer.prototype.constructor = Sprite_DestinationPointer;
|
|
|
|
//==============================
|
|
// * Initialize
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.initialize = function () {
|
|
Sprite.prototype.initialize.call(this);
|
|
this.setup();
|
|
this.loadbBitmaps();
|
|
if (this._shadow) { this.createSpritePointer() };
|
|
this.createBitmap();
|
|
this.update();
|
|
};
|
|
|
|
//==============================
|
|
// * setup
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.setup = function () {
|
|
this._shadow = String(Moghunter.destCursor_Float) == 'true' ? true : false;
|
|
var fy = this._shadow ? -16 : 0;
|
|
this._xf = Number(Moghunter.destCursor_X);
|
|
this._yf = Number(Moghunter.destCursor_Y) + fy;
|
|
this._slideMove = String(Moghunter.destCursor_slide) == 'true' ? true : false;
|
|
this._nextX = 0;
|
|
this._nextY = 0;
|
|
this._zoomAni = String(Moghunter.destCursor_Zoom) == 'true' ? true : false;
|
|
this._fadeAni = String(Moghunter.destCursor_Fade) == 'true' ? true : false;
|
|
this._floatAni = String(Moghunter.destCursor_Float) == 'true' ? true : false;
|
|
this._floatAniI = 0;
|
|
this._floatAniY = 0;
|
|
this._frames = Math.min(Math.max(Moghunter.destCursor_Frames, 1), 999);
|
|
this._framesIndex = 0;
|
|
this._framesSpeed = Math.min(Math.max(Moghunter.destCursor_FramesSpeed, 1), 999);
|
|
this._framesAni = 0;
|
|
this._rotationSpeed = Number(Moghunter.destCursor_Rotation);
|
|
this.blendMode = Moghunter.destCursor_BlendMode;
|
|
this._mode = 0;
|
|
this._data = [-1, -1];
|
|
this._data2 = [-1, -1];
|
|
this._frameCount = 0;
|
|
this.opacity = 0;
|
|
};
|
|
|
|
//==============================
|
|
// * load Bitmaps
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.loadbBitmaps = function () {
|
|
this._bitmapImg1 = ImageManager.loadSystem("Destination");
|
|
if (this._shadow) {
|
|
this._bitmapImg2 = ImageManager.loadSystem("Destination_Shadow");
|
|
} else {
|
|
this._bitmapImg2 = new Bitmap(16, 16);
|
|
};
|
|
};
|
|
|
|
//==============================
|
|
// * get Data
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.getData = function () {
|
|
this._data[0] = this._bitmapImg1.width / this._frames;
|
|
this._data[1] = this._bitmapImg1.height;
|
|
var sprite = this._pointer ? this._pointer : this;
|
|
if (this._frames > 1) { this.refreshFrameAnimation(sprite) };
|
|
};
|
|
|
|
//==============================
|
|
// * create Sprite Pointer
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.createSpritePointer = function () {
|
|
this._pointer = new Sprite(this._bitmapImg1);
|
|
this._pointer.anchor.x = 0.5;
|
|
this._pointer.anchor.y = 0.5;
|
|
this.addChild(this._pointer);
|
|
};
|
|
|
|
//==============================
|
|
// * create Bitmap
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.createBitmap = function () {
|
|
var bt = this._pointer ? this._bitmapImg2 : this._bitmapImg1;
|
|
this.bitmap = bt;
|
|
this.anchor.x = 0.5;
|
|
this.anchor.y = 0.5;
|
|
};
|
|
|
|
//==============================
|
|
// * refresh Frame Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.refreshFrameAnimation = function (sprite) {
|
|
var ws = this._data[0] * this._framesIndex;
|
|
sprite.setFrame(ws, 0, this._data[0], this._data[1]);
|
|
this._framesIndex++;
|
|
if (this._framesIndex >= this._frames) { this._framesIndex = 0 };
|
|
};
|
|
|
|
//==============================
|
|
// * x Pos
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.xPos = function () {
|
|
var x = $gameTemp.destinationX();
|
|
var xo = this._pointer ? 0 : this._xf;
|
|
return xo + ($gameMap.adjustX(x) + 0.5) * $gameMap.tileWidth();
|
|
};
|
|
|
|
//==============================
|
|
// * y Pos
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.yPos = function () {
|
|
var y = $gameTemp.destinationY();
|
|
var f = this._pointer ? 0 : this._floatAniY;
|
|
var yo = this._pointer ? 0 : this._yf;
|
|
return yo + f + (($gameMap.adjustY(y) + 0.5) * $gameMap.tileHeight());
|
|
};
|
|
|
|
//==============================
|
|
// * move to Pos
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.movetoPos = function (value, real_value) {
|
|
if (value == real_value) { return value };
|
|
var dnspeed = 5 + (Math.abs(value - real_value) / 10);
|
|
if (value > real_value) {
|
|
value -= dnspeed;
|
|
if (value < real_value) { value = real_value };
|
|
}
|
|
else if (value < real_value) {
|
|
value += dnspeed;
|
|
if (value > real_value) { value = real_value };
|
|
};
|
|
return Math.floor(value);
|
|
};
|
|
|
|
//==============================
|
|
// * update Position
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updatePosition = function () {
|
|
if (this._slideMove) {
|
|
this.x = this.movetoPos(this.x, this.xPos());
|
|
this.y = this.movetoPos(this.y, this.yPos());
|
|
} else {
|
|
this.x = this.xPos();
|
|
this.y = this.yPos();
|
|
};
|
|
if (this._pointer) {
|
|
this._pointer.x = this._xf;
|
|
this._pointer.y = this._floatAniY + this._yf;
|
|
};
|
|
};
|
|
|
|
//==============================
|
|
// * update Zoom Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateZoomAnimation = function (sprite) {
|
|
sprite.scale.x = 1 + this._frameCount / 20;
|
|
sprite.scale.y = sprite.scale.x;
|
|
};
|
|
|
|
//==============================
|
|
// * update Fade Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateFadeAnimation = function (sprite) {
|
|
sprite.opacity = (20 - this._frameCount) * 25;
|
|
};
|
|
|
|
//==============================
|
|
// * update Float Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateFloatAnimation = function () {
|
|
this._floatAniI++;
|
|
if (this._floatAniI < 13) {
|
|
this._floatAniY--;
|
|
} else if (this._floatAniI < 26) {
|
|
this._floatAniY++;
|
|
} else {
|
|
this._floatAniI = 0;
|
|
this._floatAniY = 0;
|
|
};
|
|
};
|
|
|
|
//==============================
|
|
// * update Frame Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateFrameAnimation = function (sprite) {
|
|
this._framesAni++;
|
|
if (this._framesAni < this._framesSpeed) { return };
|
|
this._framesAni = 0;
|
|
this.refreshFrameAnimation(sprite);
|
|
};
|
|
|
|
//==============================
|
|
// * update Rotation Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateRotationAnimation = function (sprite) {
|
|
sprite.rotation += this._rotationSpeed;
|
|
};
|
|
|
|
//==============================
|
|
// * update Animation
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateAnimation = function () {
|
|
this._frameCount++;
|
|
this._frameCount %= 20;
|
|
var sprite = this._pointer ? this._pointer : this;
|
|
if (this._zoomAni) { this.updateZoomAnimation(sprite) };
|
|
if (this._fadeAni && $gameTemp.isDestinationValid()) { this.updateFadeAnimation(sprite) };
|
|
if (this._rotationSpeed != 0) { this.updateRotationAnimation(sprite) };
|
|
if (this._floatAni) { this.updateFloatAnimation() };
|
|
if (this._frames > 1) { this.updateFrameAnimation(sprite) };
|
|
};
|
|
|
|
//==============================
|
|
// * update Sprites
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateSprites = function () {
|
|
this.updatePosition();
|
|
this.updateAnimation();
|
|
this.visible = true;
|
|
};
|
|
|
|
//==============================
|
|
// * update Disabled
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateDisabled = function () {
|
|
if (this.opacity > 0) {
|
|
this.opacity -= 15;
|
|
this.updateAnimation();
|
|
} else {
|
|
this.updateClear();
|
|
};
|
|
};
|
|
|
|
//==============================
|
|
// * update Clear
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateClear = function () {
|
|
this.x = $gamePlayer.screenX();
|
|
this.y = $gamePlayer.screenY();
|
|
this._frameCount = 0;
|
|
this.visible = false;
|
|
this._floatAniI = 0;
|
|
this._floatAniY = 0;
|
|
};
|
|
|
|
//==============================
|
|
// * update Base
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.updateBase = function () {
|
|
if ($gameTemp.isDestinationValid()) {
|
|
this.opacity = 255;
|
|
this.updateSprites();
|
|
} else {
|
|
this.updateDisabled();
|
|
};
|
|
};
|
|
|
|
//==============================
|
|
// * Update
|
|
//==============================
|
|
Sprite_DestinationPointer.prototype.update = function () {
|
|
Sprite.prototype.update.call(this);
|
|
if (this._data[0] < 0) {
|
|
if (this._bitmapImg1.isReady()) { this.getData() };
|
|
} else {
|
|
this.updateBase();
|
|
};
|
|
}; |