rpgmakermv吧 关注:21,385贴子:68,004
  • 3回复贴,共1

【询问】请问一下吧里的大神,鼠标点击画面之后总是有闪烁的框

只看楼主收藏回复

这个框咋去掉?百度了半天也没找到方法。


IP属地:辽宁1楼2017-12-02 21:35回复
    给你一个粗略变更的插件,还没来得及美化,将就用吧。
    //=============================================================================
    // Mouse.js
    //=============================================================================
    /*:
    * @plugindesc 变更鼠标图标,美化点击光标.
    * @author Fanzi.
    *
    * @param MouseBitmapName
    * @desc 鼠标文件名
    * @default mouse.cur
    *
    * @param CursorBitmapName
    * @desc 光标文件名
    * @default cursor.png
    *
    * @param BitmapFolder
    * @desc 文件夹路径
    * @default img/mouse/
    *
    * @help
    * 图标文件名“cursor.cur”路径“img/mouse”.
    * The sprite for displaying the destination place of the touch input.
    */
    //var MouseBitmap = parameters['MouseBitmapName'];
    //var CursorBitmap = parameters['CursorBitmapName'];
    //var BitmapFolder = parameters['BitmapFolder'];
    //-----------------------------------------------------------------------------
    // 鼠标图标部分
    Scene_Title.prototype.initialize = function() {
    Scene_Base.prototype.initialize.call(this);
    document.getElementById('UpperCanvas').style.cursor='url(img/mouse/cursor.cur),auto';
    document.getElementById('ErrorPrinter').style.cursor='url(img/mouse/cursor.cur),auto';
    };
    //-----------------------------------------------------------------------------
    // 点击光标部分
    function Sprite_Destination() {
    this.initialize.apply(this, arguments);
    }
    Sprite_Destination.prototype = Object.create(Sprite.prototype);
    Sprite_Destination.prototype.constructor = Sprite_Destination;
    Sprite_Destination.prototype.initialize = function() {
    Sprite.prototype.initialize.call(this);
    this.createBitmap();
    this._frameCount = 0;
    };
    Sprite_Destination.prototype.update = function() {
    Sprite.prototype.update.call(this);
    if ($gameTemp.isDestinationValid()){
    this.updatePosition();
    this.updateAnimation();
    this.visible = true;
    } else {
    this._frameCount = 0;
    this.visible = false;
    }
    };
    Sprite_Destination.prototype.createBitmap = function() {
    //这个函数内容全删(留下空函数)就不出现点击响应
    var tileWidth = $gameMap.tileWidth();
    var tileHeight = $gameMap.tileHeight();
    this.bitmap = new Bitmap(tileWidth / 3, tileHeight / 3);
    this.bitmap.fillAll('cyan');
    this.anchor.x = 0.5;
    this.anchor.y = 0.5;
    this.blendMode = Graphics.BLEND_ADD;
    };
    Sprite_Destination.prototype.updatePosition = function() {
    var tileWidth = $gameMap.tileWidth();
    var tileHeight = $gameMap.tileHeight();
    var x = $gameTemp.destinationX();
    var y = $gameTemp.destinationY();
    this.x = ($gameMap.adjustX(x) + 0.5) * tileWidth;
    this.y = ($gameMap.adjustY(y) + 0.5) * tileHeight;
    };
    Sprite_Destination.prototype.updateAnimation = function() {
    this._frameCount++;
    this._frameCount %= 20;
    this.opacity = (20 - this._frameCount) * 6;
    this.scale.x = 1 + this._frameCount / 20;
    this.scale.y = this.scale.x;
    };


    IP属地:广东2楼2017-12-02 22:48
    回复
      2025-07-19 02:41:08
      广告
      谢谢


      IP属地:辽宁3楼2017-12-03 11:07
      回复
        找到项目下的/js/rpg_sprites.js,所有特效显示效果都是在这个类里面定义的。
        找到这个函数:
        Spriteset_Map.prototype.createLowerLayer = function() {
        Spriteset_Base.prototype.createLowerLayer.call(this);
        this.createParallax();
        this.createTilemap();
        this.createCharacters();
        this.createShadow();
        // this.createDestination();
        this.createWeather();
        };
        注释掉this.createDestination()即可,如果你想显示自己的光标样式,修改createDestination函数即可,不建议直接修改,可以以插件的模式来扩展,参见二楼提供的插件方法。


        IP属地:上海4楼2018-03-28 15:01
        回复