cocos2dx原始碼:相框PhotoFrame
標頭檔案PhotoFrame.h
#ifndef _PHOTOFRAME_H_
#define _PHOTOFRAME_H_
#include "cocos2d.h"
#include "GmbsCocos.h"
#include "extensions/cocos-ext.h"
using namespace cocos2d::ui;
NS_CC_BEGIN
class PhotoFrame : public LayerColor
{
public:
~PhotoFrame();
static PhotoFrame* create(const char* filename, const Color4B& color = Color4B(255, 255, 255, 0));
virtual bool init(const char* filename);
void decorate(Node* photo, float horiz = 0, float vert = 0);
void inflate(float wInf, float hInf);
protected:
ui::Scale9Sprite* m_frameSprite;
};
NS_CC_END
#endif
cpp檔案PhotoFrame.cpp
#include "PhotoFrame.h"
NS_CC_BEGIN
PhotoFrame::~PhotoFrame()
{
}
PhotoFrame* PhotoFrame::create(const char* filename, const Color4B& color)
{
PhotoFrame* pobLayer = new PhotoFrame();
if (pobLayer && pobLayer->initWithColor(color) && pobLayer->init(filename))
{
pobLayer->autorelease();
return pobLayer;
}
else
{
CC_SAFE_DELETE(pobLayer);
return NULL;
}
}
bool PhotoFrame::init(const char* filename)
{
m_frameSprite = ui::Scale9Sprite::create(filename);
this->addChild(m_frameSprite);
return true;
}
void PhotoFrame::decorate(Node* photo, float wInf, float hInf)
{
photo->addChild(this);
Size size = photo->getContentSize();
size.width += wInf;
size.height += hInf;
this->setContentSize(size);
m_frameSprite->setContentSize(size);
GmbsPoint pt;
pt.reset(m_frameSprite);
pt.xMiddleAlign(this).yMiddleAlign(this);
m_frameSprite->setPosition(pt);
pt.reset(this);
pt.xMiddleAlign(photo).yMiddleAlign(photo);
this->setPosition(pt);
}
void PhotoFrame::inflate(float wInf, float hInf)
{
Size size = this->getContentSize();
size.width += wInf;
size.height += hInf;
this->setContentSize(size);
m_frameSprite->setContentSize(size);
GmbsPoint pt;
Node* photo = getParent();
pt.reset(m_frameSprite);
pt.xMiddleAlign(photo).yMiddleAlign(photo);
m_frameSprite->setPosition(pt);
pt.reset(this);
pt.xMiddleAlign(photo).yMiddleAlign(photo);
this->setPosition(pt);
}
NS_CC_END
相關文章
- cocos2dx原始碼:popup實現原始碼
- cocos2dx 很好的原始碼分析博文原始碼
- cocos2dx原始碼:背景層封裝類原始碼封裝
- 數碼相框解決方案深度分析
- 【CSS】圖片動畫特效(相框)CSS動畫特效
- cocos2dx封裝一個具有Layout功能的Point類 (提供原始碼)封裝原始碼
- 「Premiere中文新手教程」相框黑白定格REM
- CoCos2dx開發:中文亂碼
- Adobe原始碼洩漏?3行程式碼搞定,Flash動畫無縫匯入Android/iOS/cocos2dx(二)原始碼行程動畫AndroidiOS
- 原始碼原始碼原始碼樹品原始碼原始碼
- Cocos2dx之win8上使用python指令碼建立vs2013的cocos2dx工程Python指令碼
- cocos2dx之CCSpriteFrameCache
- ps透視裁剪扣取透視面上的相框內容
- android層java如何呼叫cocos2dx c++程式碼 步驟AndroidJavaC++
- cocos2dx 實用小技巧
- Spark原始碼-SparkContext原始碼解析Spark原始碼Context
- Retrofit原始碼分析三 原始碼分析原始碼
- 【Android原始碼】Fragment 原始碼分析Android原始碼Fragment
- 【Android原始碼】Intent 原始碼分析Android原始碼Intent
- Hadoop原始碼篇--Client原始碼Hadoop原始碼client
- 原始碼:原始碼
- cocos2dx 場景切換特效特效
- ubuntu cocos2dx eclipse環境UbuntuEclipse
- Quick cocos2dx學習筆記UI筆記
- 集合原始碼分析[2]-AbstractList 原始碼分析原始碼
- 集合原始碼分析[1]-Collection 原始碼分析原始碼
- ReactNative原始碼解析-初識原始碼React原始碼
- 【原始碼閱讀】AndPermission原始碼閱讀原始碼
- 集合原始碼分析[3]-ArrayList 原始碼分析原始碼
- Flutter 原始碼系列:DropdownButton 原始碼淺析Flutter原始碼
- 原始碼|jdk原始碼之HashMap分析(一)原始碼JDKHashMap
- 原始碼|jdk原始碼之HashMap分析(二)原始碼JDKHashMap
- Guava 原始碼分析之 EventBus 原始碼分析Guava原始碼
- Spring原始碼系列:BeanDefinition原始碼解析Spring原始碼Bean
- Java集合原始碼剖析——ArrayList原始碼剖析Java原始碼
- 【Android原始碼】AlertDialog 原始碼分析Android原始碼
- 【Java集合原始碼剖析】ArrayList原始碼剖析Java原始碼
- 【Java集合原始碼剖析】Vector原始碼剖析Java原始碼