设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4724|回复: 16
打印 上一主题 下一主题

[有事请教] 精灵按钮 的问题求解

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
跳转到指定楼层
1
发表于 2018-7-26 23:03:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
Sprite_Button 类
怎么做 把鼠标放上去 有改变

Lv1.梦旅人

梦石
0
星屑
113
在线时间
12 小时
注册时间
2018-7-6
帖子
8
2
发表于 2018-7-27 12:56:56 | 只看该作者
还有这种按钮效果吗?鼠标悬停有特效的?如果解决也请帮帮我,谢谢!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
3
 楼主| 发表于 2018-7-27 16:37:04 | 只看该作者
没有吗  难道只能用 获取鼠标坐标 来实现吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
4
 楼主| 发表于 2018-7-28 19:33:00 | 只看该作者
本帖最后由 jac000 于 2018-7-28 19:39 编辑
番茄x 发表于 2018-7-27 12:56
还有这种按钮效果吗?鼠标悬停有特效的?如果解决也请帮帮我,谢谢!


解决了 首先你要修改下
//==============rpg_core.js修改=================
TouchInput._onMouseMove = function(event) {
    // if (this._mousePressed) {
        var x = Graphics.pageToCanvasX(event.pageX);
        var y = Graphics.pageToCanvasY(event.pageY);
        this._onMove(x, y);
    // }
};
把 鼠标点击 注释掉 然后加一个新的 按键精灵

最后新建按键精灵的时候 NEW 这个就行了
例如 this._nextButton = new Mac_Sprite_Button();
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
113
在线时间
12 小时
注册时间
2018-7-6
帖子
8
5
发表于 2018-7-30 16:33:48 | 只看该作者
“this._nextButton = new Mac_Sprite_Button();”请问这个语句写在哪里啊?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
113
在线时间
12 小时
注册时间
2018-7-6
帖子
8
6
发表于 2018-7-30 16:50:10 | 只看该作者
现在改成了这样,但是好像没看到什么效果

  1. TouchInput._onMouseMove = function(event) {
  2. //if (this._mousePressed) {
  3.         var x = Graphics.pageToCanvasX(event.pageX);
  4.         var y = Graphics.pageToCanvasY(event.pageY);
  5.         this._onMove(x, y);
  6.         
  7. //}
  8. function Mac_Sprite_Button() {
  9.         Sprite_Button.apply(this, arguments);      

  10.     };
  11.     Mac_Sprite_Button.prototype = Object.create(Sprite_Button.prototype);
  12.     Mac_Sprite_Button.prototype.constructor = Mac_Sprite_Button;

  13.     Mac_Sprite_Button.prototype.update = function() {
  14.         Sprite_Button.prototype.update.call(this);        
  15.         this.macisTouched();
  16.     };

  17.     Mac_Sprite_Button.prototype.macisTouched = function() {      
  18.         var x = TouchInput.x;
  19.         var y = TouchInput.y;
  20.         var btx = this.x;
  21.         var bty = this.y;
  22.         if ((x>=btx&&x<=btx+this.width)&&(y>=bty&&y<=bty+this.height)){  
  23.         //这里面是 你要做的效果 自己根据自己的改         
  24.                 this.opacity = 255;
  25.             }else{
  26.                 this.opacity = 100;
  27.             }        
  28.        };
  29.         this._nextButton = new Mac_Sprite_Button();

  30. };
复制代码
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
7
 楼主| 发表于 2018-7-31 17:49:07 | 只看该作者
本帖最后由 jac000 于 2018-7-31 17:50 编辑
番茄x 发表于 2018-7-30 16:50
现在改成了这样,但是好像没看到什么效果


你这 写法当然不对啊 都没理解到意思 我想想看怎么给你解释
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4583
在线时间
1205 小时
注册时间
2016-4-7
帖子
982

开拓者

8
发表于 2018-7-31 18:42:43 | 只看该作者
给sprite_buttom组件加个update函数 里面每帧获取一下鼠标坐标然后做point hit 如果鼠标坐标在按钮上 则改变对应的sprite的bitmap为highlight 时的图 如果没命中 则改为 default 时的图
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
9
 楼主| 发表于 2018-7-31 20:41:22 | 只看该作者
本帖最后由 jac000 于 2018-7-31 20:45 编辑
番茄x 发表于 2018-7-30 16:50
现在改成了这样,但是好像没看到什么效果


这是一个整体 你写拿都无所谓
//=====================按钮精灵=======================   
    function Mac_Sprite_Button() {
        Sprite_Button.apply(this, arguments);      

    };
    Mac_Sprite_Button.prototype = Object.create(Sprite_Button.prototype);
    Mac_Sprite_Button.prototype.constructor = Mac_Sprite_Button;

    Mac_Sprite_Button.prototype.update = function() {
        Sprite_Button.prototype.update.call(this);        
        this.macisTouched();
    };

    Mac_Sprite_Button.prototype.macisTouched = function() {        
        var x = TouchInput.mousex;
        var y = TouchInput.mousey;
        var btx = this.x;
        var bty = this.y;
        if ((x>=btx&&x<=btx+this.width)&&(y>=bty&&y<=bty+this.height)){            
                this.opacity = 255;
            }else{
                this.opacity = 100;
            }        
       };
这也是一个整体
TouchInput._onMouseMove = function(event) {
   
        var x = Graphics.pageToCanvasX(event.pageX);
        var y = Graphics.pageToCanvasY(event.pageY);
        if (this._mousePressed) {
            this._onMove(x, y);
        }
        this.mousex = x;
        this.mousey = y;
};
上面2个只要不写在 函数里面就行
最后一个 你要加在你 按钮 在的地方
这是个例子 别照抄 会错的
Mac_Scene_Equip.prototype.nextButton = function(){   //你需要的界面  我是是在这个下 Mac_Scene_Equip
        this._nextButton = new Mac_Sprite_Button();         //建立一个新的 按钮
        this._nextButton.setClickHandler(this.nextActor.bind(this));    //按钮按下的 程序名 this.nextActor 这个根据你自己的来改
        this._nextButton.bitmap=ImageManager.loadSystem('button2');   //加载的图片我的这个路径是在System下的 名字 button2
        this._nextButton.x=100;     // 按钮  X  坐标  
        this._nextButton.y=266;    // 按钮  Y 坐标                  
        this.addChild(this._nextButton);       //显示 按钮
    };
我的这个效果是 改的透明度 你只要看懂了 其他效果也能做
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1125
在线时间
111 小时
注册时间
2017-12-30
帖子
74
10
 楼主| 发表于 2018-8-1 01:04:51 | 只看该作者
shitake 发表于 2018-7-31 18:42
给sprite_buttom组件加个update函数 里面每帧获取一下鼠标坐标然后做point hit 如果鼠标坐标在按钮上 则改 ...

问个问题

Mac_Eqmenu.prototype.onItemCancel = function() {        
        this._categoryWindow.activate();
    };

我想在Mac_Equip用 Mac_Eqmenu下的  这个命令
我该怎么调用
一个是 Mac_Eqmenu.prototype = Object.create(Scene_ItemBase.prototype);
一个是Mac_Equip.prototype = Object.create(Scene_MenuBase.prototype);下的

Mac_Equip.prototype.onSlotCancel = function() {
        this._slotWindow.deselect();        
       Mac_Eqmenu.prototype.onItemCancel.call(this);  //这个不能用
    };

点评

如果你的 Mac_Equip 是 Mac_Eqmenu 的子类,可以直接 this.onItemCancel();  发表于 2018-8-4 17:57
Mac_Eqmenu.prototype.onItemCancel.apply(this);  发表于 2018-8-4 17:55
就是 不同类怎么调用  发表于 2018-8-1 15:11
看不懂你在说什么 Mac前缀的这几个类是你自己写的?  发表于 2018-8-1 13:53
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-7 15:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表