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

Project1

 找回密码
 注册会员
搜索

精灵按钮 的问题求解

查看数: 5048 | 评论数: 12 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-7-26 23:03

正文摘要:

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

回复

南宫逸枫 发表于 2018-11-23 21:10:47
谢谢大佬!我正好需要!学习了!
jac000 发表于 2018-8-5 16:43:35
番茄x 发表于 2018-8-4 17:05
非常感谢大佬的耐心讲解(*°∀°)=3

大什么佬啊 我也是新手啊 现学的
番茄x 发表于 2018-8-4 17:05:56
非常感谢大佬的耐心讲解(*°∀°)=3
jac000 发表于 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
jac000 发表于 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);       //显示 按钮
    };
我的这个效果是 改的透明度 你只要看懂了 其他效果也能做
shitake 发表于 2018-7-31 18:42:43
给sprite_buttom组件加个update函数 里面每帧获取一下鼠标坐标然后做point hit 如果鼠标坐标在按钮上 则改变对应的sprite的bitmap为highlight 时的图 如果没命中 则改为 default 时的图
jac000 发表于 2018-7-31 17:49:07
本帖最后由 jac000 于 2018-7-31 17:50 编辑
番茄x 发表于 2018-7-30 16:50
现在改成了这样,但是好像没看到什么效果


你这 写法当然不对啊 都没理解到意思 我想想看怎么给你解释
番茄x 发表于 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. };
复制代码
番茄x 发表于 2018-7-30 16:33:48
“this._nextButton = new Mac_Sprite_Button();”请问这个语句写在哪里啊?
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-3 00:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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