最近在学习cocos2d,需要使用对话框,但是cocos2d引擎并没有提供可以实现所需功能的对话框,没办法,就只好自己来写一个。其实对话框就是一个层,写一个类继承Layer就可以了,废话不多说,直接上代码。
Dialog.h
#ifndef _Dialog_Layer_
#define _Dialog_Layer_
#include "cocos2d.h"
USING_NS_CC;
class Dialog:public Layer
{
public:
Size m_size;
Dialog();
~Dialog();
static Scene* createScene();
virtual bool init();
bool addButton(const char* normalImage,const char* selectedImage,
const char* button_title,int tag,Vec2 position);//添加菜单按钮
bool addButton(const char* normalImage, const char* selectedImage, int tag, Vec2 position);
void setCallbackFunc(CCObject* target, SEL_CallFuncN callfun);//设置回调函数,知道是哪个按钮被点击
void setTitle(const char* titles, int fontSize);//设置对话框标题
const char* getTitle();//获得对话框标题
int getTitleSize();//获得标题字体大小
void setContent(const char* contents,int fontsize);//设置显示内容
const char* getContentLabel();//获取对话框内容
int getContentFontSize();//设置内容的字体大小
void setBackground(const char* backgroundImage);//设置背景图
void ButtonCallback(Ref* sender);//按钮的点击事件响应
virtual void onEnter();//重写onEnter()函数
virtual void onExit();
CCObject* m_callbackListener;
SEL_CallFuncN m_callback;
CREATE_FUNC(Dialog);
private:
Menu *menu;
Vector<Node*> node;
const char* m_title;
const char* m_content;
int m_title_fontSize;
int m_content_fontSize;
Sprite * sprite_m;
Sprite* background;
Size visiableSize;
const char* backgroundImage;
};
#endif
Dialog.cpp
#include "Dialog.h"
#include "cocos2d.h"
USING_NS_CC;
Dialog::Dialog():
m_title(NULL),
m_content(NUL