• cocos2d-x使用CCScale9Sprite


    cocos2d-x在使用CCScale9Sprite的时候需要注意,因为使用到了扩展库所以要

    • 在项目属性中的C/C++的附加包含目录中,添加$(SolutionDir)extensions,设置include路径
    • 在连接器的输入中,添加libExtensions.lib,这个库文件位于cocos2d-x编译结果目录中(Debug.win32)

    接下来需要在源码中加入相应的代码,首先是添加头文件及名字空间

    1 #include "cocos-ext.h" 
    2   
    3  USING_NS_CC_EXT;  

    交叉编译的时候要注意在Android.mk中要加

    $(call import-module,extensions)

    方可编译成功

     1         /////////////////////////////
     2         //添加跳转按钮
     3         //正常态下按钮图片
     4         CCScale9Sprite *butNormal = CCScale9Sprite::create("up2.png");
     5         //选中后按钮图片
     6         CCScale9Sprite *butSelected = CCScale9Sprite::create("up1.png");
     7         //按钮标题
     8         //CCLabelTTF *title = CCLabelTTF::create("Button","Arial",20);
     9         //按钮可以根据标题自动调整大小,当然也可以设定
    10         CCControlButton *pButton = CCControlButton::create(butNormal);
    11         pButton->setPreferredSize(CCSizeMake(48,48));
    12         //设置选中后图片
    13         pButton->setBackgroundSpriteForState(butSelected,CCControlStateSelected);
    14         pButton->setPosition(ccp(size.width / 2, size.height/2));
    15         this->addChild(pButton);

    按钮事件

     1     /* 当鼠标处于按下并曾经点中按钮时,则触发一次 */  
     2         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);  
     3       
     4         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次 */  
     5         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragEnter), CCControlEventTouchDragEnter);  
     6       
     7         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次 */  
     8         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragExit), CCControlEventTouchDragExit);  
     9       
    10         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发 */  
    11         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragInside), CCControlEventTouchDragInside);  
    12       
    13         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发 */  
    14         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragOutside), CCControlEventTouchDragOutside);  
    15       
    16         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次 */  
    17         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInside), CCControlEventTouchUpInside);  
    18       
    19         /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次 */  
    20         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutside), CCControlEventTouchUpOutside);  
    21       
    22         /* 暂时没有发现能用鼠标触发这个事件的操作,看了注释,应该是由其它事件中断按钮事件而触发的 */  
    23         controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventTouchCancel);  


    回调函数

    1     void touchDownAction(CCObject* pSender, CCControlEvent event);  
    2        void touchDragEnter(CCObject* pSender, CCControlEvent event);  
    3        void touchDragExit(CCObject* pSender, CCControlEvent event);  
    4        void touchDragInside(CCObject* pSender, CCControlEvent event);  
    5        void touchDragOutside(CCObject* pSender, CCControlEvent event);  
    6        void touchUpInside(CCObject* pSender, CCControlEvent event);  
    7        void touchUpOutside(CCObject* pSender, CCControlEvent event);  
    8        void touchCancel(CCObject* pSender, CCControlEvent event);  
  • 相关阅读:
    格式化你的git message
    git merge
    Git远程操作详解
    Limit
    EmailService
    RequestContextHolder getHttpServletRequest
    spring boot GlobalExceptionHandler @RestControllerAdvice @ExceptionHandler
    redis 的雪崩和穿透?
    FileUtil
    getWeekDay TimeUtil
  • 原文地址:https://www.cnblogs.com/sambird/p/3197562.html
Copyright © 2020-2023  润新知