cocos2d3.0 Scale9Sprite

cocos2d3.0 Scale9Sprite

使用Scale9Sprite须要引入以下的头文件

#include "extensions/cocos-ext.h"


USING_NS_CC;
USING_NS_CC_EXT;

一、S9BatchNodeBasic

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

    
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;
    
    auto batchNode = SpriteBatchNode::create("blocks9.png");
    
    auto blocks = Scale9Sprite::create();
    log("------created");
    
    blocks->updateWithBatchNode(batchNode, Rect(0, 0, 96, 96), false, Rect(0, 0, 96, 96));
    
    blocks->setPosition(Point(x, y));
    
    this->addChild(blocks);
    return true;
}

效果:

<span>cocos2d3.0 Scale9Sprite</span>


二、
S9FrameNameSpriteSheet

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("blocks9ss.plist");
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;
    
    auto blocks = Scale9Sprite::createWithSpriteFrameName("blocks9.png");

    blocks->setPosition(Point(x, y));
    
    this->addChild(blocks);
    
    
    return true;
}

效果:

<span>cocos2d3.0 Scale9Sprite</span>


三、
S9BatchNodeScaledNoInsets  设置精灵的大小

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("blocks9ss.plist");
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;
    
    auto batchNode_scaled = SpriteBatchNode::create("blocks9.png");
    
    auto block_scaled = Scale9Sprite::create();
    
    block_scaled->updateWithBatchNode(batchNode_scaled, Rect(0, 0, 96, 96), false, Rect(0, 0, 96, 96));
    
    block_scaled->setPosition(Point(x, y));
    
    block_scaled->setContentSize(Size(96 * 4, 96 * 2));
    
    this->addChild(block_scaled);
    
    
    
    return true;
}

效果:

<span>cocos2d3.0 Scale9Sprite</span>


四、
S9FrameNameSpriteSheetRotatedScaledNoInsets

  auto block_scaled = Scale9Sprite::createWithSpriteFrameName("blocks9.png");

    
    block_scaled->setPosition(Point(x, y));
    
    block_scaled->setContentSize(Size(96 * 4, 96 * 2));
    
    this->addChild(block_scaled);
    

效果:

<span>cocos2d3.0 Scale9Sprite</span>


五、
S9FrameNameSpriteSheetRotatedScaledNoInsets

    auto block_scaled = Scale9Sprite::createWithSpriteFrameName("blocks9r.png");

    
    block_scaled->setPosition(Point(x, y));
    
    block_scaled->setContentSize(Size(96 * 4, 96 * 2));
    
    this->addChild(block_scaled);

效果:

<span>cocos2d3.0 Scale9Sprite</span>


S9FrameNameSpriteSheetInsets

    auto batchNode_scaled_with_insets = SpriteBatchNode::create("blocks9.png");
    
    auto blocks_scaled_with_insets = Scale9Sprite::create();
    
    blocks_scaled_with_insets->updateWithBatchNode(batchNode_scaled_with_insets, Rect(0, 0, 96, 96), false, Rect(32, 32, 32, 32));
    
    blocks_scaled_with_insets->setContentSize(Size(96 * 4.5, 96 * 2.5));
    
    blocks_scaled_with_insets->setPosition(Point(x, y));
    
    this->addChild(blocks_scaled_with_insets);


<span>cocos2d3.0 Scale9Sprite</span>



S9FrameNameSpriteSheetInsetsScaled

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("blocks9ss.plist");
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;

    
    auto blocks_scaled_with_insets = Scale9Sprite::createWithSpriteFrameName("blocks9.png",Rect(32, 32, 32, 32));
    

    
    blocks_scaled_with_insets->setContentSize(Size(96 * 4.5, 96 * 2.5));
    
    blocks_scaled_with_insets->setPosition(Point(x, y));
    
    this->addChild(blocks_scaled_with_insets);


<span>cocos2d3.0 Scale9Sprite</span>





S9_TexturePacker

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ui.plist");
    float x = visibleSize.width / 4;
    float y = visibleSize.height / 2;
    
    
    auto s = Scale9Sprite::createWithSpriteFrameName("button_normal.png");
    
    s->setPosition(Point(x, y));
    log("... setPosition");
    
    s->setContentSize(Size(14 * 16, 10 * 16));
    log("... setContentSize");
    
    this->addChild(s);


    
    auto blocks_scaled_with_insets = Scale9Sprite::createWithSpriteFrameName("button_actived.png");
    

     x = visibleSize.width * 3/4;
    blocks_scaled_with_insets->setContentSize(Size(14 * 16, 10 * 16));
    
    blocks_scaled_with_insets->setPosition(Point(x , y));
    
    this->addChild(blocks_scaled_with_insets);


<span>cocos2d3.0 Scale9Sprite</span>




Scale9FrameNameSpriteSheetRotatedSetCapInsetLater

  Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("blocks9ss.plist");
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;
    
    
    

    
    auto blocks_scaled_with_insets = Scale9Sprite::createWithSpriteFrameName("blocks9r.png");
    blocks_scaled_with_insets->setInsetLeft(32);
    blocks_scaled_with_insets->setInsetRight(32);
    blocks_scaled_with_insets->setPreferredSize(Size(32 * 5.5f, 32 * 4));
    
    blocks_scaled_with_insets->setPosition(Point(x , y));
    
    this->addChild(blocks_scaled_with_insets);


<span>cocos2d3.0 Scale9Sprite</span>






S9CascadeOpacityAndColor

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Point origin = Director::getInstance()->getVisibleOrigin();

     SpriteFrameCache::getInstance()->addSpriteFramesWithFile("blocks9ss.plist");
    float x = visibleSize.width / 2;
    float y = visibleSize.height / 2;
    
    auto rgba = Layer::create();
    rgba->setCascadeColorEnabled(true);
    rgba->setCascadeOpacityEnabled(true);
    this->addChild(rgba);
    
    

    
    auto blocks_scaled_with_insets = Scale9Sprite::createWithSpriteFrameName("blocks9r.png");
    
    
    blocks_scaled_with_insets->setPosition(Point(x , y));
    
    rgba->addChild(blocks_scaled_with_insets);
    
    
    
    auto actions = Sequence::create(FadeIn::create(1),TintTo::create(1, 0, 255, 0),TintTo::create(1, 255, 255, 255),FadeOut::create(1), NULL);
    auto repeat = RepeatForever::create(actions);
    
    rgba->runAction(repeat);


<span>cocos2d3.0 Scale9Sprite</span>








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119170.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月15日 上午6:00
下一篇 2021年11月15日 上午7:00


相关推荐

  • MAC下安装opencv,pycharm 引入 cv2出现问题「建议收藏」

    MAC下安装opencv,pycharm 引入 cv2出现问题「建议收藏」尝试使用caffe中的mnist模型测试手写的图片时,发现pycharm没有cv2,然后安装借鉴前人经验,总结安装过成如下:前提本人系统,已经安装brew,xcode1.直接输入命令 brewinstallopencv2.成功安装opencv之后,进入python的site-packages目录下,并创建链接(下载好的opencv放在/usr/local/Cellar/ope

    2022年8月28日
    4
  • 流数据_数据回流是什么意思

    流数据_数据回流是什么意思恢复内容开始特征:持续到达,数据量大,注重数据整体价值,数据顺序可能颠倒,丢失,实时计算,海量,分布,实时,快速部署,可靠linkedinKafkasparkstreaming:微小批

    2022年8月2日
    8
  • form表单提交后如何弹出对话框_ajax提交form表单数据

    form表单提交后如何弹出对话框_ajax提交form表单数据定义一个函数:functionsumbit_sure(){vargnl=confirm(“确定要提交?”);if(gnl==true){returntrue;}else{returnfalse;}}然后在form的onsubmit里调用就可以了:

    2022年10月7日
    5
  • 计算机科学和电子信息学报,电子与信息学报好中吗

    计算机科学和电子信息学报,电子与信息学报好中吗责编 不能确定投稿论文是录用还是重新外审状态 相当于 Pending 等待状态 具体看审阅者的审稿意见 意见好一般给录用 要是有一个 Reject 拒绝 估计就得重申了 论文在成功投稿后 第一步会经过技术审查 在这个阶段有几种可能的结果 未审退回 这个情况发生在编辑认为论文不符合期刊范畴或投稿要求 于是在未送交外审的情形下退回稿件 有另一种可能是论文里的语言错误太多 索性期刊编辑在退回的时候会说明

    2026年3月20日
    3
  • 轻松实现在web页面中直接播放rtsp视频流「建议收藏」

    轻松实现在web页面中直接播放rtsp视频流「建议收藏」帮你轻松实现在页面中直接播放rtsp视频流使用准备ffmpeg运行rtsp2web前端代码课外知识写在前面我之前研究在web中直接播放rtsp视频流时,写过一篇文章:【前端】rtsp与rtmp视频流的播放方法。阅读这篇文章对你的学习有很大帮助。在文章中我有过详细的分析和解读,给出了结论:要想在web中实时播放rtsp视频流:借助后端转码推流将是必要的操作。实现我用node.js实现了转码推流的功能,并将其打包成rtsp2web发布到了npm上。……

    2022年10月10日
    4
  • 机器学习笔记之SVM(SVR)算法

    机器学习笔记之SVM(SVR)算法学过 SVM 后 看了那么多别人的文章 是时候自己总结一波了 权当写的笔记供自己日后再回顾吧 PS 结合自己在工作过程中 我用 SVR 做股票预测 用到的知识来写的 不会很全面 若有些知识这里没提及读者可自行查找 1 概述支持向量机 supportvecto 是一种分类算法 但是也可以做回归 根据输入的数据不同可做不同的模型 若输入标签为连续值则做回归 若输入标签为分类值则做

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号