CXSprite.cpp文件
#include "XSprite.h" CXSprite::CXSprite(void)
{
m_strPic.clear();
} CXSprite::~CXSprite()
{
}
/*********************************
*函数名称:createSprite
*函数功能:创建精灵
*函数参数:const char* psFile--创建精灵用的图片
int nFrameIndex--(-1--普通图片 0-2--按钮图片帧(按钮统一为3帧))
*函数返回值:创建的精灵指针
*备注:分两种情况来创建
1.第一种:只是简单的通过图片来创建
2.第二种:通过纹理来创建,但是这里要将纹理三等分,
分别是未点击时的,点击时的,点击结束时的
*********************************/
CXSprite* CXSprite::createSprite( const char* psFile, int nFrameIndex /*= -1*/ )
{
if(NULL == psFile || nFrameIndex < - || nFrameIndex >= BTN_FRAME_AMOUNT)
{
return NULL;
} CCTexture2D* pTexture = CCTextureCache::sharedTextureCache()->addImage(psFile);
ASSERT(pTexture);
if(NULL == pTexture)
{
CCLOG("create: %s ---Texture Eroor", psFile);
return NULL;
} CXSprite* pSprite = new CXSprite();
if (NULL != pSprite)
{
pSprite->autorelease();
pSprite->m_strPic = psFile;
bool bSuc = false;
if(- == nFrameIndex)
{
bSuc = pSprite->initWithTexture(pTexture);
}
else
{
CCRect rect = CCRectZero;
rect.size = pTexture->getContentSize();
rect.size.width /= BTN_FRAME_AMOUNT;
rect.origin.x += nFrameIndex * rect.size.width;
bSuc = pSprite->initWithTexture(pTexture, rect);
}
if(bSuc)
{
pSprite->setAnchorPoint(ccp(, ));
return pSprite;
}
}
CC_SAFE_DELETE(pSprite);
return NULL;
}
/*********************************
*函数名称:create
*函数功能:通过标签创建精灵
*函数参数:const char* psTag--创建精灵用的图片名称
int nFrameIndex--(-1--普通图片 0-2--按钮图片帧(按钮统一为3帧))
*函数返回值:创建的精灵指针
*备注:
这里是通过CCSpriteFrameCache来创建的
*********************************/
CXSprite* CXSprite::create( const char* psTag, int nFrameIndex /*= -1*/ )
{
if(NULL == psTag || nFrameIndex < - || nFrameIndex >= BTN_FRAME_AMOUNT)
{
return NULL;
} if(strlen(psTag) <= )
{
return NULL;
} CCSpriteFrame* pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(psTag);
ASSERT(pFrame);
if(NULL == pFrame)
{
CCLOG("CXSprite::create: %s ---SpriteFrame Error", psTag);
return NULL;
} CXSprite* pSprite = new CXSprite();
if (NULL != pSprite)
{
pSprite->autorelease();
pSprite->m_strPic = psTag;
bool bSuc = false;
if(- == nFrameIndex)
{
bSuc = pSprite->initWithSpriteFrame(pFrame);
}
else
{
CCRect rect = pFrame->getRect();
rect.size.width /= BTN_FRAME_AMOUNT;
rect.origin.x += nFrameIndex * rect.size.width;
bSuc = pSprite->initWithTexture(pFrame->getTexture(), rect);
}
if(bSuc)
{
pSprite->setAnchorPoint(ccp(, ));
return pSprite;
}
}
CC_SAFE_DELETE(pSprite);
return NULL;
}
/*********************************
*函数名称:getPicName
*函数功能:获取图片名称
*函数参数:void
*函数返回值:图片名称
*备注:返回的是成员变量
*********************************/
string CXSprite::getPicName()
{
return m_strPic;
}
CXSprite.cpp文件的更多相关文章
- atom 调用g++编译cpp文件
atom 有script插件可以直接调用很多编译器,试了很多次一直出问题找不到文件,查了文档之后发现script只支持OSX和linux. 所以,还是使用gpp-compiler比较靠谱 gpp-co ...
- C++链接两个cpp 文件
我们在编程中,有没有想过,分别写代码,然后把两个cpp,文件合并,两个自身本不能运行的文件,在一起却可以运行(主要牵扯函数调用,一个有声明和调用,另一个定义).那么具体如何实现呢? 跟着我的步骤: 1 ...
- ios工程中加入.c/.cpp文件
如果你在工程里拉入.c/.cpp文件就会导致工程报错, 现在有两种解决方式 1. 把.c文件的后缀全部改成.m的后缀 把.cpp文件的后缀改成.mm的后缀 2. 使用 工程名-Prefix.pch 并 ...
- C中头文件在cpp文件中引用和.h文件引用
1.编译器会单独编译每个cpp文件.头文件会复制到cpp文件中. 2.有时会遇到这样的一个问题a.cpp要调用b.cpp中的函数,而b.cpp又要调用a.cpp中的函数.这就牵扯到相互调用.这时如果我 ...
- [vim配置]windows下在vim中使用gcc/g++编译调试c/cpp文件
在Linux里面混了一个多月,vim编程用得甚爽.无奈前天将Linux里面的编程文件夹误删,而技术不精无法找回,悲痛欲绝.再者,无限怀念windows里面的游戏,并觉得现在在Linux里面也学不到什么 ...
- C++学了这么多年,你也许不知道为什么类定义要放在.h文件,类实现放在cpp文件。它们如何关联?
原文 http://blog.csdn.net/ithzhang/article/details/8119286 主题 C++ C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类 ...
- QT-- MainWindow外的cpp文件调用ui
这几天在学习QT,想写一个类似VIM的小软件,刚开始不注重代码结构,全部实现都写在MainWindow文件中,导致MianWindow文件十分的长而且很难去阅读,就想着把函数按照功能分到不同的cpp文 ...
- WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件实现视觉检测
近段时间开始接触halcon,但是在VS2015里面使用,无论是配置还是生产EXE文件,都不如意. 加上网上的教程很多,经过多次测试,其实有很多地方无需修改,如果修改的太多也失去了直接添加封装的意义. ...
- 一个简单的makefile,一次性编译本文件夹下所有的cpp文件
代码: CXX := g++ CFLAGS := -g TARGET := xxx.exe SRCS := $(wildcard *.cpp) OBJS := $(patsubst %cpp,%o,$ ...
随机推荐
- 在Android 5.0中使用JobScheduler
在Android 5.0中使用JobScheduler 原文链接 : using-the-jobscheduler-api-on-android-lollipop 译者 : Mr.Simple 校对者 ...
- 13.FutureTask异步计算
FutureTask 1.可取消的异步计算,FutureTask实现了Future的基本方法,提供了start.cancel 操作,可以查询计算是否完成,并且可以获取计算 的结果.结果 ...
- Linux下读取RFID卡号(C串口编程)
由于项目需要用到RFID.GPRS.摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的 RFID模块: 本次采用的是125K的RFID读卡 ...
- MonoSingleton——Unity中的单例模式
Unity中有很多特别的类需要以单例模式呈现,比如全局的UI管理类,各种缓存池,以及新手导航类等等.而Unity中,因为所有继承自Monobehaviour的脚本在实现的时候都是单线程的,所以像网上流 ...
- 同一个数据库实例,不同用户下多表创建视图,Hibernate完毕ORM映射,Spring整合,后台实现
1.同一个数据库实例.同用户,多表创建视图 2.同一个数据库实例,不同用户下.多表创建视图 3.同一个数据库,不同数据库实例,多表创建视图 4.不同类型数据库,多表创建视图 1.同一个数据库实例.同用 ...
- T_SQL的 FOR XML PATH 用法
T_SQL的 FOR XML PATH FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活 ...
- Samba简单教程+Samba中文显示问题
1.检测安装Samba服务(1).检查Samba服务包是否已安装:rpm -qa | grep samba(2).如未安装,则插入第一张安装盘,执行:mount /mnt/cdromcd /cdrom ...
- Android Api Component---翻译任务和回退栈(Tasks and Back Stack)
一个应用程序通常包括多个activity.每个activity应当环绕一个指定的用户能够运行的而且能够开启其他activity的动作种类被设计. 比如,一个emali应用程序或许有一个activity ...
- k-means聚类学习
4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在 ...
- Android调用OCR识别图像中的文字
// CharacterExtractor.java // Copyright (c) 2010 William Whitney // All rights reserved. // This sof ...