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,$ ...
随机推荐
- 【GISER && Painter】Chapter00:OpenGL原理学习笔记
说明:简单了解一下OpenGL的工作原理,初步认识计算机对于图形渲染的底层设计与实现,第一次接触,也没学过C艹,欢迎各位批评指正. 一 什么是OpenGL? OpenGL是一个开放标准(specif ...
- ConnectivityManager详解
常用方法: 1.监听网络连接(Wi-Fi, GPRS, UMTS, etc),当网络发生改变时发送广播(broadcase)进行通知 2.通过该类查询网络连接状态 常用方法: getActiveNet ...
- SWFUpload 已上传成功数量控制 插件(用于解决队列满问题)
当我们在使用 SWFUpload 做文件上传时,我们需要把已经上传的文件列表做一个删除, 但在我们把已上传列表删除后,再重新上传时,会发现提示 上传队列满 的问题,原因就是有一个状态对象中的一个 成功 ...
- C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即 ...
- Voice Commands (VCD) Cortana 微软小娜示例
Cortana 样品 您可以创建自定义功能Cortana使用Cortana技能装备或遗留的声音命令(VCD)平台. 在这里,你可以找到相关的样品: Cortana技能装备 目前Cortana技巧是建立 ...
- UNIX网络编程读书笔记:基本UDP套接口编程
概述 使用UDP编写的一些流行的应用程序有:DNS(域名系统).NFS(网络文件系统)和SNMP(简单网络管理协议). 如下图所示,给出了典型的UDP客户/服务器程序的函数调用: 客户不与服务器建立连 ...
- HDU 1565 1569 方格取数(最大点权独立集)
HDU 1565 1569 方格取数(最大点权独立集) 题目链接 题意:中文题 思路:最大点权独立集 = 总权值 - 最小割 = 总权值 - 最大流 那么原图周围不能连边,那么就能够分成黑白棋盘.源点 ...
- android KK版本号收到短信后,点亮屏的操作
alps/packages/apps/mms/src/comandroid\mms\transation\MessagingNotification.java private static void ...
- 算法笔记_041:寻找和为定值的多个数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 输入两个整数n和sum,要求从数列1,2,3,...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来. 2 解决方案 上述问题 ...
- Spring MVC过滤器-登录过滤
以下代码是继承OncePerRequestFilter实现登录过滤的代码: package com.test.spring.filter; import java.io.IOException; im ...