cocos2d-x学习:CCSprite总结

STM32 BLDC无刷电机霍尔信号捕获与换相控制实战解析 本文深入解析了STM32如何实现BLDC无刷电机的霍尔信号捕获与换相控制。详细阐述了硬件接口配置、定时器霍尔传感器模式的使用、抗干扰的滤波器与软件容错设计,以及中断服务与换相逻辑的实战代码。重点解决了信号抖动、换相不准等常见问题,旨在帮助开发者构建稳定可靠的电机驱动基础。 阅读详情

     精灵是2D游戏中得主角,这次就总结一下cocos2d-x中精灵的使用。

一,加载

     首先,创建一个变量 CCSprite *pSprite;

     加载函数分为两组initWithXXXX和spriteWithXXXX,其主要的区别是使用initWithXXXX的手工作业,而spriteWithXXXX是纯自动化作业。在SpriteWithXXXX中,先分配内存,然后加载,最后加入到autorelease中。而前者只有加载的部分,分配内存以及释放都需要靠自己。下边全部以spriteWithXXXX函数说明。

1,从文件中直接加载

      从文件中加载很简单,只需要 CCSprite::spriteWithFile("文件完整名称"); 其中文件名必须是完整路径,用cocos2d-x生成的项目中Resources目录为根目录。若有一个文件目录为..\Resources\chars\a.png 则 文件名部分就应该为"chars/a.png"。值得注意的是,在WINDOWS下,后缀名大写小写无所谓,但是在MAC下,后缀的大小写必须与文件完全一致,否则无法加载。

此函数还有一个重载函数,后边多一个CCRect参数,可以通过此参数设定加载图片中某个矩形区域。

2,间接加载

      有些经常被用到或者需要频繁加载移除的一些资源,如果每次都从文件中加载,程序的效率会变得非常低,通常的做法是将这些文件先读到缓存中,然后再从缓存中加载。

      CCTexture2D *pTexture = CCTextureCache::sharedTextureCache()->addImage(pszFilename);这个函数将一个图片加入缓存并返回一个CCTexture2D的指针。然后就可以

     pSprite = CCSprite::spriteWithTexture(pTexture);

      如果一个资源已经被加入到了缓存,addImage是不会再加一遍的。程序中我很少会直接用spriteWithTexture这个函数,因为需要保存pTexture的指针。而在spriteWithFile函数中起内部就已经使用了上述过程。

      另一种间接加载方法是利用SpriteFrame。SpriteFrame是把一个大的图片划分掉,每一个矩形区域就是一个SpriteFrame。其实如果这个SpriteFrame在大图中的矩形区域已知的话,可以直接使用CCTexture2D的方式,使用CCRect参数。SpriteFrame给我们提供了一种快捷,简便的方式,就是将这个矩形区域信息保存到plist文件中,并通过一个名称作为索引。生成这种大图也有很多工具,我使用过两种工具,一个是 Zwoptex 是一个在线的免费工具,另一个我常用的是 TexturePacker。这是一个收费软件,不过免费版也能满足基本的需要。这两种工具可以生成一个.plist文件和一个图片文件。存放的时候讲这两个关联的文件放在同一个目录下。在需要使用的时候,我们可以将它加载到缓存中:

CCSpriteFrameCache *pCache = CCSpriteFrameCache::sharedSpriteFrameCache();

pCache->addSpriteFramesWithFile("XXXX.plist");

其中plist文件的路径是完整路径。

然后可以用两种方式加载

pSprite = CCSprite::spriteWithSpriteFrame(pCache->spriteFrameByName(szFrameName));

pSprite = CCSprite::spriteWithSpriteFrameName(szFrameName);

看起来第一个函数比较麻烦,实际上,第二个函数调用的是第一个函数。。。。值得说明的是,这里的szFrameName不需要完整路径,而是文件名索引。

 

二,常用操作

精灵加载完了就改各种使用了。

1,锚点

锚点就是所有旋转,移动,缩放的参考点。cocos2-x中默认的锚点是中心点。锚点用比例来表示范围为0-1,(0,0)点代表左下点,(1,1)代表右上点。设置的函数为setAnchorPoint(ccp(0.5, 0.5));

2,旋转

setRotation(angle) 其中angle为角度不是弧度。正数为顺时针旋转,负数为逆时针旋转。

3,位置

setPosition(ccp(xPos, yPos)) xPos和yPos为相对于父节点锚点的位置。

4,缩放

setScale(s);   // 整体缩放

setScaleX(s); // 原图片坐标X轴缩放

setScaleY(s); // 原图片坐标Y轴缩放

s为比例,s = 1表示原尺寸。

5,倾斜

setSkewX(s); // 原图片坐标X轴倾斜

setSkewY(s); // 原图片坐标Y轴倾斜

X轴向右为正,Y轴向上为正。

6,透明度

setOpacity(s);

s范围0-255,0完全透明,255完全不透明。

7,可见

setIsVisible(bVisible)

bVisible为bool值true代表可见false代表不可见

8,翻转

setFlipX(bFlip);  // 水平翻转

setFlipY(bFlip);  // 竖直翻转

bFlip为true,则图片翻转,false不翻转。注意,翻转是针对原图片的操作,水平翻转相当于在图片编辑软件里水平翻转一样。不根据锚点进行翻转。翻转以后,设置的以前设置的锚点不会随着图片的翻转而改变。比如设置右下角为锚点,则翻转以后,锚点为翻转后的图片的右下角(是不是有点绕?)

最后,初始化完成后,不要忘了使用addChild加入到父节点,否则是不会显示的。

本文转载于 wander简单的世界,地址:http://www.cnblogs.com/w121640121/archive/2012/02/12/2348471.html


ads设计Doherty功放(1) Doherty功放的设计 阅读详情

相关推荐

Win10下ISE14.7安装避坑全记录:从License加载失败到ChipScope连不上,我踩过的雷都在这了

本文详细记录了在Win10系统下安装ISE14.7时遇到的常见问题及解决方案,包括License加载失败、IMPACT闪退、ChipScope连接故障等。通过实际案例和步骤解析,帮助用户避开安装陷阱,确保FPGA开发工具顺利运行。特别针对license问题提供了兼容性设置和文件修改的实用技巧。

weixin_42683394的博客 225

cocos2d-x总结(五)CCSprite精灵的加载与常用操作

精灵是2D游戏中得主角,这次就总结一下cocos2d-x中精灵的使用。 一,加载 首先,创建一个变量 CCSprite *pSprite; 加载函数分为两组initWithXXXX和spriteWithXXXX,其主要的区别是使用initWithXXXX的手工作业,而spriteWithXXXX是纯自动化作业。在SpriteWithXXXX中,先分配内存,然后加载,最后加入到autore...

weixin_34310369的博客 295

Spirent TestCenter 3.90吞吐测试全流程详解(附RFC 2544配置避坑指南)

本文详细解析了使用Spirent TestCenter 3.90进行网络吞吐测试的全流程,并提供了符合RFC 2544标准的配置指南与避坑要点。内容涵盖测试环境搭建、核心概念澄清、STC软件配置步骤、结果深度解读以及自动化脚本入门,旨在帮助网络测试工程师精准评估设备性能,规避常见配置陷阱。

weixin_42602368的博客 370

cocosCreator 之 Sprite动态加载和远程加载

cocosCreator 组件Sprite动态加载的各种使用方式和远程加载的示例

鹤九日的博客 5036

【SAP报错】BK128&K5112

在ECC中使用CO1F进行Progressive confirmation时,依次遇到了如下的报错。

weixin_45228526的博客 784

华为IC岗笔试刷题含答案(2)

又做了几套题,记录了部分及答案,如有错误,欢迎评论指正。

Ingrid的博客 1万+

Cocos2d-x Sprite笔记

1.createauto sprite = Sprite::create("HelloWorld.png"); Sprite* Sprite::create(const std::string& filename) { Sprite *sprite = new (std::nothrow) Sprite(); if (sprite && sprite->initWithFile(fi

blpnh的博客 1964

YOLOv8独家原创改进:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1512

关于在cocos2dx中继承Sprite的分析与技巧

本文章特指使用C++作为编程语言,基于cocos2dx游戏引擎开发游戏。 在cocos2dx中,sprite作为精灵类是使用最为频繁的类,与其它类相比,如:Node, Layer或Scene,Sprite最大的不同是它包含一个纹理,通过OpenGL的渲染,在游戏中呈现出来。游戏中的主角,怪物,背景,或是精灵的血条等都是通过Sprite来实现的。 在cocos2dx中,关于创建S

峻峰飞阳的博客 blog.youkuaiyun.com/while0 4261

计算机网络技术研究方向有哪些创新点

计算机网络技术方向的创新点众多,这些创新不仅推动了网络技术的不断发展和完善,还为用户提供了更高效、更安全、更便捷的网络服务。- 边缘计算是一种将计算和数据存储推向网络边缘的技术,通过将数据处理和分析的任务分散到网络的各个节点,降低了数据传输的延迟,提高了实时性。- 通过网络自动化工具和技术,可以实现网络配置的自动化、网络故障的自动诊断与修复等功能,降低了网络运维的复杂性和成本。- 通过引入人工智能技术,网络可以实现更智能的流量管理、故障预测和自动修复等功能,提高了网络的性能和稳定性。

Loving_enjoy的博客 1495

RabbitMQ高级特性 - 生产者消息确认机制

为了保证信息 从生产者 发送到 队列,因此引入了生产者的消息确认机制.通过事务机制实现.通过发送确认机制(confirm 和 return)实现.因为事务机制比较消耗性能,在实际工作中用的也不多,因此这里主要介绍confirm 和 return机制来实现发送放的确认.a)confirm 确认模式如上图,confirm 确认模式主要保障于 生产者 到 交换机 的消息可靠性.如果 Exchange成功收到消息,那么 ConfirmCallback 这个回调 ack 参数就为true。

CYK_byte的博客 1886

cocos2dx中加载图片资源的方法,和从内存中获取已经加载的图片资源的方法 以及释放问题

游戏中通常需要将常用的资源如:声音,图片,plist文件,提前加载进内存,以加快游戏的流畅度 1.预加载声音: SimpleAudioEngine::getInstance()->preloadBackgroundMusic("boom.mp3"); 加载之后就可以直接播放:SimpleAudioEngine::getInstance()->playBackgroundMusic("boom

hongkebobby的博客 6281

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

cocos2d-X学习之主要类介绍:精灵角色(CCSprite)

CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性: 父节点是CCSpriteBatchNode时具有的特性: 更快的渲染速度,特别时CCSpriteBatchNode有很多子节点的情况下,但有以下限制: A、不支持照相功能(例如:CCOrbitCamera动

随影 665

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Cocos2d-x学习笔记:CCSprite的使用总结

一、精灵创建及初始化   备注:默认锚点ccp(0.5,0.5),默认位置 ccp(0,0),contentSize为精灵图片尺寸 1、从图片文件创建 2、从帧缓存创建: 3、初始化及自定义大小 4. 从纹理CCTexture2D中创建 二、精灵常用属性及方法: self->addChild(sprite);//添加入层中,self为CCLayer sc...

weixin_30819085的博客 131

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

(转载)cocos2d-X学习之主要类介绍:精灵角色(CCSprite)

转载之:http://www.cnblogs.com/lhming/archive/2012/07/01/2572236.html   CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性: 父节点是CCSpriteBatchNode时具有的特性: 更快的渲染速度,特

志汉天涯~!~Day Day Up~ 1035

(转)cocos2d-X学习之主要类介绍:精灵角色(CCSprite)

cocos2d-X学习之主要类介绍:精灵角色(CCSprite) CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性: 父节点是CCSpriteBatchNode时具有的特性: 更快的渲染速度,特别时CCSpriteBatchNode有很多子节

gxj1680的专栏 932

【Cocos2d-X开发学习笔记】第06期:渲染框架之精灵类(CCSprite)的使用

一、精灵类(CCSprite)       精灵类CCSprite是一张二维的图片对象,它可以用一张图片或者一张图片的一块矩形部分来定义。CCSprite和它 的子类可以作为精灵批处理类的子项。它的继承关系如下图所示。 1、CCSprite类主要保护的成员数据如下图所示。 2、CCSprite类的主要公共函数如下图所示。       这里需

我是一条寻水的鱼 4192

cocos2d-X 节点(CCSprite.h)API

本文来自http://blog.youkuaiyun.com/runaying ,引用必须注明出处! cocos2d-X 节点(CCSprite.h)API ///cocos2d-x-3.0alpha0/cocos2dx/sprite_nodes #ifndef __SPITE_NODE_CCSPRITE_H__ #define __SPITE_NODE_CCSPRITE_H__ #incl

runaying的专栏 5208

[cocos2d-x]关于是否继承CCSprite,以及关于继承初始化时候的未知问题

最近学习cocos2dx时候,正在打算把一个cocos2d-iPhone项目转用cocos2dx写一遍。 刚实现基本的场景逻辑,便出现一些奇怪的问题: 1、程序启动随机当机 2、对象实例化添加到SpriteBatchNode后闪一下便消失了 问题1: 首先我的程序主要层级架构如下: GameSence :管理游戏中Sence\Layer等场景高级层次的关系 GameLayer

Chiuan的专栏 8628

cocos2d-x学习笔记-CCSprite(精灵)

精灵是游戏中十分重要的组成部分,随处可见,如:游戏背景、NPC、人物、道具等。在cocos2d-x引擎中,只要是用图片展示的,基本上需要使用精灵类。 1. 首先来了解一下跟精灵相关的几个类: (1) CCTexture2D 可以把它看成一个纹理,它是cocos2d-x渲染图形的重要参数,用来贴图,因为cocos2d-x使用opengl es绘制2d图形的,它的尺寸是2的n次方。一般通过以

Alex Zhou的程序世界 1903
上一篇: c++ 中的 声明和定义 区别
下一篇: 封装 获取后台数据类
深巷落叶
博客等级 码龄16年 1粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值