zoukankan      html  css  js  c++  java
  • cocos2dx --- button点击放大中心

    自定义简单button,直接附着到代码:

    MenuItem* MenuItemNode::create( const char* normal,Ref* target,SEL_MenuHandler select )
    {
    	auto _normal = Sprite::create(normal);
    	return MenuItemNode::create(_normal,target,select);
    }
    
    MenuItem* MenuItemNode::create( Sprite* normal, Ref* target, SEL_MenuHandler selector )
    {
    	Rect _rect = Rect(normal->getPositionX(),normal->getPositionY(),normal->getContentSize().width,normal->getContentSize().height);
    	auto select =	Sprite::createWithTexture(normal->getTexture(),_rect,false);
    	select->setColor(ccGRAY);
    	select->setScale(1.1f);
    	auto _menuItem = MenuItemSprite::create(normal,select,target,selector);
    	return _menuItem;
    }
    

    可是非常可惜。这样的放大是基于锚点(0,0)的,是向右上方放大,非常别钮,须要让其居中放大,须要改动cocos2dx源代码:

    找到CCMenuItem.cpp   改动方法:void MenuItemSprite::setSelectedImage(Node* image)

    代码:

    void MenuItemSprite::setSelectedImage(Node* image)
    {
        if (image != _normalImage)
        {
            if (image)
            {
                addChild(image, 0, kSelectedTag);
    			//image->setAnchorPoint(Point(0, 0));
    			//替换
    			image->setAnchorPoint(Point((image->getScaleX() -1)/2 , (image->getScaleY()-1)/2));
            }
    
            if (_selectedImage)
            {
                removeChild(_selectedImage, true);
            }
    
            _selectedImage = image;
            this->updateImagesVisibility();
        }
    }

    用上面自己定义的Node创建一个button,点击试下,居中放大,并且变色。灰常的不错。并且还节省资源。

    PS:图片的变色能够自已依据须要去调。改动这种方法的參数:

    select->setColor(ccGRAY);//如今是灰色。能够换成其他的,如高亮。淡黄等自己的自定义颜色


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    About learn《The C programming Language,Second Edition》
    Reproduction CVE_2019_0708
    Hello universe!
    WebSessionStore: Could not obtain reference to HttpContext
    oracle 触发器
    IE11,用Forms身份验证保存不了Cookie
    水晶报表
    SAP记账期间变式
    SAP会计年度变式
    SAP OB52会计年度变式
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4733731.html
Copyright © 2011-2022 走看看