Project1

标题: mv求教,如何实现,列表中未选中的图标为灰色 [打印本页]

作者: 岸波白野    时间: 2021-6-2 15:26
标题: mv求教,如何实现,列表中未选中的图标为灰色

作者: 清澈淌漾    时间: 2021-6-2 15:26
  1.     /**显示卡牌*/
  2.     Window_Limpid_MarketCardanime.prototype.printcard = function (i) {
  3.         var card = LIM.CardData.data_Cardmap.get(this._trum[this._cardind][i])
  4.         var color = LIM.CardTool.getcard_color(card.id)
  5.         var cost = LIM.CardTool.getcard_cost(card.num)
  6.         var mold = LIM.CardTool.getcard_mold(card.type)

  7.         var index = this._trumnum - i - 1

  8.         this.limpidsprite.box[index].bitmap = ImageManager.loadCard("ui/card_" + LIM.CardTool.box_mold(mold) + "_" + LIM.CardTool.box_color(color))
  9.         this.limpidsprite.box[index]._colorTone = [0, 0, 0, 255];
  10.         this.limpidsprite.box[index]._refresh()


  11.         this.limpidsprite.picture[index].bitmap = ImageManager.loadCard("port/card_000")
  12.         this.limpidsprite.picture[index]._blendColor = [0, 0, 0, 255]
  13.         this.limpidsprite.picture[index].alpha = 1
  14.         this.limpidsprite.picture[index]._refresh()

  15.         this.limpidsprite.name[index].x = 200 * parseInt(index % 5) + ((10 - card.name.length) * 4.25) + 60
  16.         this.limpidsprite.name[index].bitmap.drawText(card.name, 0, 0, 120, 20, "left");

  17.         this.limpidsprite.cost[index].bitmap.drawText(cost, 0, 0, 40, 40, "center");
  18.         if (color < 3) {
  19.             this.limpidsprite.light[index].bitmap = ImageManager.loadCard("special/flashlight")
  20.             this.limpidsprite.light[index].alpha = 1
  21.             this.gold.push(index)
  22.         }
  23.         if (color < 2) {
  24.             this.limpidsprite.ring[index].bitmap = ImageManager.loadCard("special/ring")
  25.             this.limpidsprite.ring[index].alpha = 1
  26.             this.legend.push(index)
  27.         }

  28.         if (10 % mold == 0) {
  29.             this.limpidsprite.atk[index].bitmap.drawText(LIM.CardTool.getcard_atk(card.num), 0, 0, 50, 25, "center");
  30.             this.limpidsprite.hp[index].bitmap.drawText(LIM.CardTool.getcard_hp(card.num), 0, 0, 50, 25, "center");
  31.         }
  32.     };
复制代码

逻辑不太一样  
   sprite.alpha = 1
显示
    sprite.alpha = 0
隐藏
作者: xiamumomo    时间: 2021-6-2 15:37
没看懂你的问题  什么列表
作者: 岸波白野    时间: 2021-6-2 15:45
xiamumomo 发表于 2021-6-2 15:37
没看懂你的问题  什么列表

技能列表,主要是想实现
在战斗中,在技能列表中选择技能的时候,被选中的技能的图标有我自己设计的边框
作者: xiamumomo    时间: 2021-6-2 16:06
如果是这个样子MOG战斗UI-角色窗口插件论坛搜应该是这个

QQ图片20210602155941.png (351.29 KB, 下载次数: 109)

QQ图片20210602155941.png

作者: 岸波白野    时间: 2021-6-2 16:19
xiamumomo 发表于 2021-6-2 16:06
如果是这个样子MOG战斗UI-角色窗口插件论坛搜应该是这个

很感谢您的耐心回复。
我是想知道如果自己写插件该怎么实现。
作者: xiamumomo    时间: 2021-6-2 16:42
岸波白野 发表于 2021-6-2 16:19
很感谢您的耐心回复。
我是想知道如果自己写插件该怎么实现。

不好意思似乎是  主菜单选项外框插件  至于你要自己写  我无能为力  你可以参考一下他的插件
作者: 清澈淌漾    时间: 2021-6-2 16:53
Sprite和Bitmap都有透明度和颜色   
调一下 变灰是color =#555
具体怎么加看你菜单怎么写的
作者: 岸波白野    时间: 2021-6-2 17:10
清澈淌漾 发表于 2021-6-2 16:53
Sprite和Bitmap都有透明度和颜色   
调一下 变灰是color =#555
具体怎么加看你菜单怎么写的 ...

感谢您的回复,那如果给图标加一个边框该怎么实现呢,我做的是那种网游式ui,只有图标,没有名称和消耗。
,现在不知道怎么现实,把选中的图标标识出来
/*:=============================================================================
* @plugindesc v1.0 技能图标
* @author Ek.MoMo
=============================================================================*/
//要使用技能图标的话在技能备注里写<icon:filename>(如<icon:06>表示使用img/skills/06.png作为技能图),不备注默认使用系统图标。
var Yanfly = Yanfly || {};
Yanfly.MoMo = Yanfly.MoMo || {};
Yanfly.MoMo.Scene_Battle_start = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
        Yanfly.MoMo.Scene_Battle_start.call(this);
        $gameParty.battleMembers().forEach(function(actor){
                actor._skills.forEach(function(id){
                        var icon = $dataSkills[id].meta.icon;
                        if (icon){
                                var bitmap = ImageManager.loadNormalBitmap('img/skills/' + icon + ".png", 0);
                        }
                });
        });
};

Window_BattleSkill.prototype.drawItemName = function(item, x, y, width) {
    width = 96;
    if (item) {
        var iconBoxWidth = Window_Base._iconWidth + 4;
        this.resetTextColor();
                if (item.meta.icon){
                this.drawIconEx(item.meta.icon, x , y );
                }else{
        this.drawIcon(item.iconIndex, x , y );
                }
                //选项内的内容字体为18,居中
                //this.contents.fontSize = 18;
                //this.drawText( x, y + 64, width, 'center');
    }
        //         this.drawText(item.name, x, y + 64, width, 'center');
    // }
};
Window_BattleSkill.prototype.drawIconEx = function(icon, x, y) {
    var bitmap = ImageManager.loadNormalBitmap('img/skills/' + icon + ".png", 0);
        var width = bitmap.width;
        var height = bitmap.height;
        //修改图标的大小
    this.contents.bltImage(bitmap, 0, 0, width, height, x, y, 48, 48,);
};
Window_BattleSkill.prototype.drawIcon = function(iconIndex, x, y) {
    var bitmap = ImageManager.loadSystem('IconSet');
    var pw = Window_Base._iconWidth;
    var ph = Window_Base._iconHeight;
    var sx = iconIndex % 16 * pw;
    var sy = Math.floor(iconIndex / 16) * ph;
        //修改图标的大小
    this.contents.blt(bitmap, sx, sy, pw, ph, x, y, 48, 48,);
};
Window_BattleSkill.prototype.itemWidth = function() {
       
        return 52;
};
Window_BattleSkill.prototype.itemHeight = function(x, y,) {
        return 52;
};
Window_BattleSkill.prototype.maxCols = function() {
        return 6;
};
Window_BattleSkill.prototype.spacing = function() {
        return 1;
};
Window_BattleSkill.prototype.itemRect = function(index) {
        var rect = Window_Selectable.prototype.itemRect.call(this, index);
        rect.x += 8;
        rect.y += 24;
        return rect;
};
作者: 岸波白野    时间: 2021-6-2 17:11
xiamumomo 发表于 2021-6-2 16:42
不好意思似乎是  主菜单选项外框插件  至于你要自己写  我无能为力  你可以参考一下他的插件 ...

非常感谢!,我去查一下相关的东西
作者: 清澈淌漾    时间: 2021-6-2 21:30

都是一层层图片糊 要么学下pixi怎么画
作者: 岸波白野    时间: 2021-6-3 09:32
清澈淌漾 发表于 2021-6-2 21:30
都是一层层图片糊 要么学下pixi怎么画

哈哈,您可能理解错我的意思了,边框我已经画好了。是不太清楚怎么在选中的情况下,显示出来。未选中不显示
作者: 清澈淌漾    时间: 2021-6-3 09:34
岸波白野 发表于 2021-6-3 09:32
哈哈,您可能理解错我的意思了,边框我已经画好了。是不太清楚怎么在选中的情况下,显示出来。未选中不显 ...

精灵方法
show hide或者
透明度 0 1
作者: 岸波白野    时间: 2021-6-3 09:42
清澈淌漾 发表于 2021-6-2 21:30
都是一层层图片糊 要么学下pixi怎么画

就像这个,给选中的图标一个边框,不可用的图标为灰色
作者: 岸波白野    时间: 2021-6-3 10:01
清澈淌漾 发表于 2021-6-3 09:34
精灵方法
show hide或者
透明度 0 1

可否劳烦您写一下具体的代码,英语小白没编程基础,在努力学了
想看完整的代码是怎么样的,做注释去理解实现的办法
作者: 岸波白野    时间: 2021-6-3 10:36
清澈淌漾 发表于 2021-6-3 10:31
逻辑不太一样  
   sprite.alpha = 1
显示

麻烦您了!万分感谢!!




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