cocos2d-X 节点(CCMenuItem.h)API
来源:互联网 发布:淘宝营销工具 编辑:程序博客网 时间:2024/04/30 16:50
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-X 节点(CCMenuItem.h)API
为菜单项创建各种类型的 item
1.启用/禁用 item,是否选择 item
2.MenuItemLabel、MenuItemAtlasFont、MenuItemFont、MenuItemSprite、MenuItemImage、MenuItemToggle 和 CCMenuItem 相关的类
///cocos2d-x-3.0alpha0/cocos2dx/menu_nodes#ifndef __CCMENU_ITEM_H__#define __CCMENU_ITEM_H__// C++ includes#include <functional>// cocos2d includes#include "base_nodes/CCNode.h"#include "CCProtocols.h"#include "cocoa/CCArray.h"NS_CC_BEGINtypedef std::function<void(Object*)> ccMenuCallback;class LabelTTF;class LabelAtlas;class Sprite;class SpriteFrame;#define kItemSize 32 /** * @addtogroup GUI * @{ * @addtogroup menu * @{ */
/** @brief MenuItem base class * * 子类菜单项(或任意一个子类)来创建自定义MenuItem对象。 */class CC_DLL MenuItem : public NodeRGBA{public: /** 创建一个没有 target/selector 的菜单项*/ static MenuItem* create(); /** 已过时建议使用新的 API 使用 target/selector 创建一个菜单项 */ CC_DEPRECATED_ATTRIBUTE static MenuItem* create(Object *rec, SEL_MenuHandler selector); /** 使用 target/selector 创建一个菜单项 */ static MenuItem* create(const ccMenuCallback& callback); /** * @js ctor */ MenuItem() : _selected(false) , _enabled(false) , _callback(nullptr) , _target(NULL) {} /** * @js NA * @lua NA */ virtual ~MenuItem(); /** 使用一个 target/selector 初始化一个菜单项 * @js NA * @lua NA */ bool initWithCallback(const ccMenuCallback& callback); /** 已过时建议使用新的 API 使用一个 target/selector 初始化一个菜单项 * @js NA * @lua NA */ CC_DEPRECATED_ATTRIBUTE bool initWithTarget( Object *rec, SEL_MenuHandler selector); /** Returns 最外面的框 */ Rect rect() const; /** 激活 item */ virtual void activate(); /** item 已经被选择了 (没有激活), 类似 "mouse-over" */ virtual void selected(); /** The item was unselected */ virtual void unselected(); /** returns 是否启用 item */ virtual bool isEnabled() const; /** item 的启用或禁用 */ virtual void setEnabled(bool value); /** returns item 是否被选择 */ virtual bool isSelected() const; /** 设置 item 的回调 * @code * 在 js 里面,可以包含两个参数,第二个参数是 jsptr * @endcode * @lua NA */ void setCallback(const ccMenuCallback& callback); /** 已过时建议使用新的 API 设置菜单项的 target/selector * @js NA * @lua NA */ CC_DEPRECATED_ATTRIBUTE void setTarget(Object *rec, SEL_MenuHandler selector);protected: bool _selected; bool _enabled;// 回调ccMenuCallback _callback;// 如果使用旧的 API,_target需要 retained / releasedObject*_target;};
MenuItemLabel简要
/** @brief 一个 "label" MenuItemLabel items 的抽象类 支持的 LabelProtocol 协议的任何节点可以添加进来。 Supported nodes: - BitmapFontAtlas - LabelAtlas - LabelTTF */class CC_DLL MenuItemLabel : public MenuItem{public: /** 已过时建议使用新的 API ;使用一个 Label, target 和 selector 创建一个 MenuItemLabel */ CC_DEPRECATED_ATTRIBUTE static MenuItemLabel * create(Node*label, Object* target, SEL_MenuHandler selector);/** 使用一个标签和一个回调,创建一个MenuItemLabel */ static MenuItemLabel * create(Node*label, const ccMenuCallback& callback); /** 使用一个 Label 创建一个 MenuItemLabel. Target 和 selector 将是 nil */ static MenuItemLabel* create(Node *label); /** * @js ctor */ MenuItemLabel() : _originalScale(0.0) , _label(NULL) {} /** * @js NA * @lua NA */ virtual ~MenuItemLabel();/** 使用一个 Label, target 和 selector 初始化一个 MenuItemLabel */ bool initWithLabel(Node* label, const ccMenuCallback& callback); /** 已过时建议使用新的 API 使用一个 Label, target 和 selector 初始化一个 MenuItemLabel */ CC_DEPRECATED_ATTRIBUTE bool initWithLabel(Node* label, Object* target, SEL_MenuHandler selector); /** 为内置的 label 设置一个新的 string */ void setString(const char * label); /** Gets 用于禁用的 item 颜色 */ inline const Color3B& getDisabledColor() const { return _disabledColor; }; /** Sets 用于禁用的 item 颜色 */ inline void setDisabledColor(const Color3B& color) { _disabledColor = color; }; /** Gets Label 显示的内容. */ inline Node* getLabel() const { return _label; }; /** Sets Label 显示的内容. */ void setLabel(Node* node); // Overrides virtual void activate() override; virtual void selected() override; virtual void unselected() override; virtual void setEnabled(bool enabled) override; protected: Color3B _colorBackup; float _originalScale; /** 用于禁用的 item 颜色em */ Color3B _disabledColor; /** Label 显示的内容. 它可以是任何实现LabelProtocol 协议的节点 */ Node* _label;};
MenuItemAtlasFont简要
/** @brief 一个 MenuItemAtlasFont 助手类; 使用一个 LabelAtlas 创建一个 MenuItemLabel */class CC_DLL MenuItemAtlasFont : public MenuItemLabel{public: /** 使用一个 string 、 atlas 、 target/selector 创建一个菜单项 */ //地图集 static MenuItemAtlasFont* create(const char *value, const char *charMapFile, int itemWidth, int itemHeight, char startCharMap); /** 已过时建议使用新的 API 使用一个 string 、 atlas 创建一个菜单项. 在 MenuItemToggle 里面使用 */ CC_DEPRECATED_ATTRIBUTE static MenuItemAtlasFont* create(const char *value, const char *charMapFile, int itemWidth, int itemHeight, char startCharMap, Object* target, SEL_MenuHandler selector); /** 使用一个 string 、 atlas 创建一个菜单项. 在 MenuItemToggle 里面使用 */ static MenuItemAtlasFont* create(const char *value, const char *charMapFile, int itemWidth, int itemHeight, char startCharMap, const ccMenuCallback& callback); /** * @js ctor */ MenuItemAtlasFont(){} /** * @js NA * @lua NA */ virtual ~MenuItemAtlasFont(){} /** 已过时建议使用新的 API 使用一个 string 、 atlas 、 target/selector 初始化一个菜单项 */ CC_DEPRECATED_ATTRIBUTE bool initWithString(const char *value, const char *charMapFile, int itemWidth, int itemHeight, char startCharMap, Object* target, SEL_MenuHandler selector); /** 使用一个 string 、 atlas 、 target/selector 初始化一个菜单项 */ bool initWithString(const char *value, const char *charMapFile, int itemWidth, int itemHeight, char startCharMap, const ccMenuCallback& callback);};
MenuItemFont简要
/** @brief 一个 MenuItemFont 助手类 ,使用一个 Label 创建一个 MenuItemLabel */class CC_DLL MenuItemFont : public MenuItemLabel{public: /** 不使用 target/selector 值使用一个 String 创建一个菜单项. 在 MenuItemToggle 里面使用 */ static MenuItemFont * create(const char *value); /** 已过时建议使用新的 API 使用一个 string 、 target/selector 创建一个菜单项 */ CC_DEPRECATED_ATTRIBUTE static MenuItemFont * create(const char *value, Object* target, SEL_MenuHandler selector); /** 使用一个 string 、 target/selector 创建一个菜单项 */ static MenuItemFont * create(const char *value, const ccMenuCallback& callback); /** * @js ctor */ MenuItemFont() : _fontSize(0), _fontName(""){} /** * @js NA * @lua NA */ virtual ~MenuItemFont(){} /** 已过时建议使用新的 API 使用一个 string 、 target/selector 初始化一个菜单项 */ CC_DEPRECATED_ATTRIBUTE bool initWithString(const char *value, Object* target, SEL_MenuHandler selector); /** 使用一个 string 、 target/selector 初始化一个菜单项 */ bool initWithString(const char *value, const ccMenuCallback& callback); /** set 默认字体尺寸 */ static void setFontSize(unsigned int s); /** get 默认字体尺寸 */ static unsigned int getFontSize(); /**已过时建议使用新的 API */ CC_DEPRECATED_ATTRIBUTE static unsigned int fontSize() { return MenuItemFont::getFontSize(); }; /** set 默认字体的名字 */ static void setFontName(const char *name); /** get 默认字体的名字*/ static const char *getFontName(); /**已过时建议使用新的 API */ CC_DEPRECATED_ATTRIBUTE static const char *fontName() { return MenuItemFont::getFontName(); }; /** set 字体尺寸 * c++ 不能重载具有相同参数类型的静态和非静态成员函数 * 所以名称修改为 setFontSizeObj * @js setFontSize */ void setFontSizeObj(unsigned int s); /** get 字体尺寸 * @js getFontSize */ unsigned int getFontSizeObj() const; /**已过时建议使用新的 API */ CC_DEPRECATED_ATTRIBUTE unsigned int fontSizeObj() const { return getFontSizeObj(); }; /** set 字体的名字 * c++ 不能重载具有相同参数类型的静态和非静态成员函数 * 所以名称修改为 setFontSizeObj * @js setFontName */ void setFontNameObj(const char* name); /** returns 字体的名字 * @js getFontNameObj */ const char* getFontNameObj() const; /** 已过时建议使用新的 API ; 使用 getFontNameObj() 代替 */ CC_DEPRECATED_ATTRIBUTE const char* fontNameObj() const { return getFontNameObj(); } protected: void recreateLabel(); unsigned int _fontSize; std::string _fontName;};
MenuItemSprite简要
/** @brief MenuItemSprite 接受像 Node<RGBAProtocol> 对象的 items. 图像有3种不同的状态: - unselected image - selected image - disabled image @since v0.8.0 */class CC_DLL MenuItemSprite : public MenuItem{public: /** 使用 normal, selected and disabled 图片,创建一个菜单项 */ static MenuItemSprite * create(Node* normalSprite, Node* selectedSprite, Node* disabledSprite = NULL); /** 已过时建议使用新的 API ; 使用 normal 、 selected 图片 和 target/selector 创建一个菜单项*/ CC_DEPRECATED_ATTRIBUTE static MenuItemSprite * create(Node* normalSprite, Node* selectedSprite, Object* target, SEL_MenuHandler selector); /** 已过时建议使用新的 API : 使用 normal,selected 、 disabled 图片和 target/selector 创建一个菜单项 */ CC_DEPRECATED_ATTRIBUTE static MenuItemSprite * create(Node* normalSprite, Node* selectedSprite, Node* disabledSprite, Object* target, SEL_MenuHandler selector); /** 使用 normal 、 selected 图片和一个回调函数创建一个菜单项 */ static MenuItemSprite * create(Node* normalSprite, Node* selectedSprite, const ccMenuCallback& callback); /** 使用 normal 、 selected 、 disabled 图片和 target/selector 创建一个菜单项 */ static MenuItemSprite * create(Node* normalSprite, Node* selectedSprite, Node* disabledSprite, const ccMenuCallback& callback); MenuItemSprite() :_normalImage(NULL) ,_selectedImage(NULL) ,_disabledImage(NULL) {} /** 已过时建议使用新的 API ; 使用 normal 、 selected 图片和 target/selector 初始化一个菜单项*/ CC_DEPRECATED_ATTRIBUTE bool initWithNormalSprite(Node* normalSprite, Node* selectedSprite, Node* disabledSprite, Object* target, SEL_MenuHandler selector); /** 使用 normal 、 selected 、 disabled 图片和一个回调函数初始化一个菜单项 */ bool initWithNormalSprite(Node* normalSprite, Node* selectedSprite, Node* disabledSprite, const ccMenuCallback& callback); /** Gets 没有选择项目时所使用的图像 */ inline Node* getNormalImage() const { return _normalImage; }; /** Sets 没有选择项目时所使用的图像 */ void setNormalImage(Node* image); /** Gets 选择项目时使用的图像*/ inline Node* getSelectedImage() const { return _selectedImage; }; /** Sets 选择项目时使用的图像 */ void setSelectedImage(Node* image); /** Gets 该项目被禁用时显示的图片 */ inline Node* getDisabledImage() const { return _disabledImage; }; /** Sets 该项目被禁用时显示的图片 */ void setDisabledImage(Node* image); /** @since v0.99.5 */ virtual void selected(); virtual void unselected(); virtual void setEnabled(bool bEnabled); protected: virtual void updateImagesVisibility(); /** 没有选择项目时所使用的图像 */ Node* _normalImage; /** 选择项目时使用的图像*/ Node* _selectedImage; /** 该项目被禁用时显示的图片 */ Node* _disabledImage;};
MenuItemImage简要
/** @brief MenuItemImage 接受图像作为 items. 图像有3种不同的状态: - unselected image - selected image - disabled image 为了获得最佳效果,尝试所有的图片都是相同的大小 */class CC_DLL MenuItemImage : public MenuItemSprite{public: /** 创建一个 MenuItemImage. */ static MenuItemImage* create(); /** 使用 normal, selected 图片,创建一个菜单项*/ static MenuItemImage* create(const char *normalImage, const char *selectedImage); /** 使用 normal, selected and disabled 图片,创建一个菜单项 */ static MenuItemImage* create(const char *normalImage, const char *selectedImage, const char *disabledImage); /** 已过时建议使用新的 API 使用 normal,selected 、 disabled 图片和 target/selector 创建一个菜单项 */ CC_DEPRECATED_ATTRIBUTE static MenuItemImage* create(const char *normalImage, const char *selectedImage, Object* target, SEL_MenuHandler selector); /** 使用 normal 、 selected 图片和一个回调函数创建一个菜单项 */ static MenuItemImage* create(const char *normalImage, const char *selectedImage, const ccMenuCallback& callback); /** 已过时建议使用新的 API 使用 normal,selected 、 disabled 图片和 target/selector 创建一个菜单项 */ CC_DEPRECATED_ATTRIBUTE static MenuItemImage* create(const char *normalImage, const char *selectedImage, const char *disabledImage, Object* target, SEL_MenuHandler selector); /** 使用 normal,selected 、 disabled 图片和一个回调函数,创建一个菜单项 */ static MenuItemImage* create(const char *normalImage, const char *selectedImage, const char *disabledImage, const ccMenuCallback& callback); /** * @js ctor */ MenuItemImage(){} /** * @js NA * @lua NA */ virtual ~MenuItemImage(){} bool init(); /** 已过时建议使用新的 API 使用 normal,selected 、 disabled 图片和 target/selector 初始化一个菜单项 */ CC_DEPRECATED_ATTRIBUTE bool initWithNormalImage(const char *normalImage, const char *selectedImage, const char *disabledImage, Object* target, SEL_MenuHandler selector); /** 使用 normal,selected 、 disabled 图片和一个回调函数,初始化一个菜单项 */ bool initWithNormalImage(const char *normalImage, const char *selectedImage, const char *disabledImage, const ccMenuCallback& callback); /** 设置精灵正常时候的图片 */ void setNormalSpriteFrame(SpriteFrame* frame); /** 设置精灵被选择时候的图片 */ void setSelectedSpriteFrame(SpriteFrame* frame); /** 设置精灵被禁用时候的图片 */ void setDisabledSpriteFrame(SpriteFrame* frame);};
MenuItemToggle简要
/** @brief 一个 MenuItemToggle 一个简单的容器类 "toggles" 它内部的 items 内部的 Items 可以是任何类型的 MenuItem */class CC_DLL MenuItemToggle : public MenuItem{public: /** 使用一个 Array 数组和一个回调函数创建一个菜单 */ static MenuItemToggle * createWithCallback(const ccMenuCallback& callback, Array* menuItems); /** 使用一个 items 列表和一个回调函数创建一个菜单项 */ static MenuItemToggle* createWithCallback(const ccMenuCallback& callback, MenuItem* item, ...) CC_REQUIRES_NULL_TERMINATION; /** 不是用 target/selector 、items 创建一个 菜单项 */ static MenuItemToggle* create(); /** 使用一个 item 创建一个菜单项 */ static MenuItemToggle* create(MenuItem *item); /**已过时建议使用新的 API 使用一个 Array 数组和一个 target/selector 创建一个菜单 * @js NA * @lua NA */ CC_DEPRECATED_ATTRIBUTE static MenuItemToggle * createWithTarget(Object* target, SEL_MenuHandler selector, Array* menuItems); /** 已过时建议使用新的 API 使用一个 items 列表和一个 target/selector 创建一个菜单项 * @js NA * @lua NA */ CC_DEPRECATED_ATTRIBUTE static MenuItemToggle* createWithTarget(Object* target, SEL_MenuHandler selector, MenuItem* item, ...)CC_REQUIRES_NULL_TERMINATION; /** * @js ctor */ MenuItemToggle() : _selectedIndex(0) , _subItems(NULL) {} /** * @js NA * @lua NA */ virtual ~MenuItemToggle(); /** 已过时建议使用新的 API 使用一个 items 列表和一个 target/selector 初始化一个菜单项 * @js NA * @lua NA */ CC_DEPRECATED_ATTRIBUTE bool initWithTarget(Object* target, SEL_MenuHandler selector, MenuItem* item, va_list args); /** 使用一个 items 列表和一个回调函数初始化一个菜单项 */ bool initWithCallback(const ccMenuCallback& callback, MenuItem* item, va_list args); /** 使用一个 item 初始化一个菜单项 */ bool initWithItem(MenuItem *item); /** 添加更多的菜单项 */ void addSubItem(MenuItem *item); /** return 选择的 item */ MenuItem* getSelectedItem(); /** @已过时建议使用新的 API 可以使用 getSelectedItem() 代替 */ CC_DEPRECATED_ATTRIBUTE MenuItem* selectedItem() { return getSelectedItem(); } /** Gets 选择的 item 索引 */ inline unsigned int getSelectedIndex() const { return _selectedIndex; }; /** Sets 选择的 item 索引 */ void setSelectedIndex(unsigned int index); /** Gets 包含的 subitems 数组 你可以在运行的时候 add/remove items ,你也可以使用一个新的 Array 代替 @since v0.7.2 * @js NA * @lua NA */ inline Array* getSubItems() const { return _subItems; }; /** Sets 包含的 subitems 数组. */ inline void setSubItems(Array* items) { CC_SAFE_RETAIN(items); CC_SAFE_RELEASE(_subItems); _subItems = items; } // Overrides virtual void activate() override; virtual void selected() override; virtual void unselected() override; virtual void setEnabled(bool var) override;protected: /** returns 选择的 item */ unsigned int _selectedIndex; /** 包含的 subitems 数组. 你可以在运行的时候 add/remove items ,你也可以使用一个新的 Array 代替。 @since v0.7.2 */ Array* _subItems;};// end of GUI group/// @}/// @}NS_CC_END#endif //__CCMENU_ITEM_H__
- cocos2d-X 节点(CCMenuItem.h)API
- cocos2d-X 节点(CCNode.h)API
- cocos2d-X 节点(CCLayer.h)API
- cocos2d-X 节点(CCMenu.h)API
- cocos2d-X 节点(CCSprite.h)API
- cocos2d-X 节点(CCTexture2D.h)API
- cocos2d-X 节点(SpriteBatchNode.h.)API
- cocos2d-X 节点(CCSpriteFrame.h..)API
- cocos2d-X 节点(CCAnimationCache.h)API
- cocos2d-X 节点(CCCamera.h.)API
- cocos2d-X 节点(CCAction.h)API
- cocos2d-X 节点(CCActionManager.h)API
- cocos2d-X 节点(CCIMEDelegate.h)API
- cocos2d-X 节点(CCLabelAtlas.h)API
- cocos2d-X 节点(CCLabelBMFont.h)API
- cocos2d-X 节点(CCLabelTTF.h)API
- cocos2d-X 节点(CCTileMapAtlas.h)API
- cocos2d-X 节点(CCTMXLayer.h)API
- MD5加密字符串与文件
- Win32-打印学习
- 【数据结构】第1周 线性表 1:多项式加法
- Uva424 - Integer Inquiry
- [MySQL生产环境] Innodb存储引擎内存报警问题处理过程
- cocos2d-X 节点(CCMenuItem.h)API
- 用源码运行Spoon
- LPR 最新贷款利率记录
- Leetcode: Word Ladder
- 包装瓶盖的现状及其新技术
- linux内核的移植
- 指针数组与数组区别
- 玻璃瓶盖买家怎样区分玻璃瓶盖是手工机工艺还是行列机生产
- [MySQL参数取值] Status取值ERROR 1193 (HY000): Unknown system variable 'Innodb_buffer_pool_read_requests'