2017-09-10 23:56:52 +08:00
|
|
|
|
/******************************************************
|
2017-09-29 17:57:17 +08:00
|
|
|
|
* Easy2D Game Engine
|
2017-09-10 23:56:52 +08:00
|
|
|
|
*
|
2017-10-05 00:53:03 +08:00
|
|
|
|
* Website: http://www.easy2d.cn
|
2017-10-05 00:54:29 +08:00
|
|
|
|
* Github: https://github.com/Nomango/Easy2D
|
|
|
|
|
|
* Gitee: https://gitee.com/werelone/Easy2D
|
2017-09-10 23:56:52 +08:00
|
|
|
|
******************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef __cplusplus
|
|
|
|
|
|
#error Easy2D is only for C++
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2017-09-18 23:59:08 +08:00
|
|
|
|
#if _MSC_VER < 1900
|
|
|
|
|
|
#error Do Visual Studio 2015/2017 specific stuff
|
2017-09-12 12:53:34 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
|
2017-09-10 23:56:52 +08:00
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
#include <Windows.h>
|
|
|
|
|
|
#include <tchar.h>
|
|
|
|
|
|
#include <atltypes.h>
|
|
|
|
|
|
#include <atlimage.h>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <stack>
|
|
|
|
|
|
#include <functional>
|
|
|
|
|
|
|
2017-09-10 23:56:52 +08:00
|
|
|
|
|
|
|
|
|
|
#if defined(UNICODE) && (_DEBUG)
|
|
|
|
|
|
#pragma comment(lib,"Easy2Ddw.lib")
|
|
|
|
|
|
#elif !defined(UNICODE) && (_DEBUG)
|
|
|
|
|
|
#pragma comment(lib,"Easy2Dd.lib")
|
|
|
|
|
|
#elif defined(UNICODE)
|
|
|
|
|
|
#pragma comment(lib,"Easy2Dw.lib")
|
|
|
|
|
|
#elif !defined(UNICODE)
|
|
|
|
|
|
#pragma comment(lib,"Easy2D.lib")
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
// Type Declare
|
|
|
|
|
|
|
|
|
|
|
|
typedef CPoint CVector;
|
|
|
|
|
|
typedef unsigned int VK_KEY;
|
|
|
|
|
|
typedef std::function<void()> CLICK_CALLBACK;
|
|
|
|
|
|
typedef std::function<void()> TIMER_CALLBACK;
|
|
|
|
|
|
typedef std::function<void(VK_KEY)> KEY_CALLBACK;
|
|
|
|
|
|
typedef std::function<void()> MOUSE_CALLBACK;
|
|
|
|
|
|
|
2017-10-05 00:53:03 +08:00
|
|
|
|
#ifdef UNICODE
|
|
|
|
|
|
typedef std::wstring TString;
|
|
|
|
|
|
#else
|
|
|
|
|
|
typedef std::string TString;
|
|
|
|
|
|
#endif
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
// Classes Declare
|
|
|
|
|
|
|
|
|
|
|
|
namespace easy2d
|
|
|
|
|
|
{
|
|
|
|
|
|
class App;
|
|
|
|
|
|
class Scene;
|
|
|
|
|
|
|
|
|
|
|
|
class Object;
|
|
|
|
|
|
class Node;
|
|
|
|
|
|
class FontStyle;
|
|
|
|
|
|
class Color;
|
|
|
|
|
|
class RectNode;
|
|
|
|
|
|
class Text;
|
|
|
|
|
|
class Image;
|
|
|
|
|
|
class BatchNode;
|
|
|
|
|
|
class MouseNode;
|
|
|
|
|
|
class Button;
|
|
|
|
|
|
class TextButton;
|
|
|
|
|
|
class ImageButton;
|
|
|
|
|
|
class Layer;
|
|
|
|
|
|
class Sprite;
|
|
|
|
|
|
class BatchSprite;
|
|
|
|
|
|
class Shape;
|
|
|
|
|
|
class Circle;
|
|
|
|
|
|
class Rectangle;
|
|
|
|
|
|
|
|
|
|
|
|
class Action;
|
|
|
|
|
|
class Animation;
|
|
|
|
|
|
class ActionMoveTo;
|
|
|
|
|
|
class ActionMoveBy;
|
|
|
|
|
|
class ActionScaleTo;
|
|
|
|
|
|
class ActionScaleBy;
|
|
|
|
|
|
class ActionOpacityTo;
|
|
|
|
|
|
class ActionOpacityBy;
|
|
|
|
|
|
class ActionFadeIn;
|
|
|
|
|
|
class ActionFadeOut;
|
|
|
|
|
|
class ActionFrames;
|
|
|
|
|
|
class ActionDelay;
|
|
|
|
|
|
class ActionCallback;
|
|
|
|
|
|
class ActionTwo;
|
|
|
|
|
|
class ActionSequence;
|
|
|
|
|
|
class ActionNeverStop;
|
|
|
|
|
|
|
|
|
|
|
|
class MouseMsg;
|
|
|
|
|
|
class KeyMsg;
|
|
|
|
|
|
|
|
|
|
|
|
class FreePool;
|
|
|
|
|
|
class FileUtils;
|
|
|
|
|
|
class MusicUtils;
|
|
|
|
|
|
class ActionManager;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-10-05 00:53:03 +08:00
|
|
|
|
|
|
|
|
|
|
// Classes
|
|
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
namespace easy2d
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
class App
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
App();
|
|
|
|
|
|
~App();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ڿ<EFBFBD>ѡģʽ
|
|
|
|
|
|
enum MODE { SHOW_CONSOLE = 1, NO_CLOSE = 2, NO_MINI_MIZE = 4 };
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
void createWindow(int width, int height, int mode = 0);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
|
void createWindow(CSize size, int mode = 0);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
void createWindow(TString title, int width, int height, int mode = 0);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
void createWindow(TString title, CSize size, int mode = 0);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int run();
|
|
|
|
|
|
// <20>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>Դ
|
|
|
|
|
|
void free();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
|
|
|
|
|
static App * get();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
|
static void setOrigin(int originX, int originY);
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static int getOriginX();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static int getOriginY();
|
|
|
|
|
|
// <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void quit();
|
|
|
|
|
|
// <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void end();
|
|
|
|
|
|
// <20>Ĵ<DEB8><C4B4>ڴ<EFBFBD>С
|
|
|
|
|
|
static void setWindowSize(int width, int height);
|
|
|
|
|
|
// <20>Ĵ<DEB8><C4B4>ڴ<EFBFBD>С
|
|
|
|
|
|
static void setWindowSize(CSize size);
|
|
|
|
|
|
// <20>رմ<D8B1><D5B4><EFBFBD>
|
|
|
|
|
|
static void close();
|
|
|
|
|
|
// <20><><EFBFBD>ô<EFBFBD><C3B4>ڱ<EFBFBD><DAB1><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void setWindowTitle(TString title);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString getWindowTitle();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD>
|
|
|
|
|
|
static int getWidth();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڸ߶<DAB8>
|
|
|
|
|
|
static int getHeight();
|
|
|
|
|
|
// <20>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void enterScene(Scene *scene, bool save = true);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void backScene();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3><EFBFBD>
|
|
|
|
|
|
static void clearScene();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> AppName
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void setAppName(TString appname);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ AppName
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString getAppName();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20>Ĵ<DEB8><C4B4>ڱ<EFBFBD><DAB1><EFBFBD>ɫ
|
|
|
|
|
|
static void setBkColor(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1>
|
|
|
|
|
|
static void setFPS(DWORD fps);
|
|
|
|
|
|
// <20><><EFBFBD>û<EFBFBD>ͼ<EFBFBD><CDBC>ʽΪĬ<CEAA><C4AC>ֵ
|
|
|
|
|
|
static void reset();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
static Scene * getCurrentScene();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString m_sTitle;
|
|
|
|
|
|
TString m_sAppName;
|
2017-10-06 02:32:33 +08:00
|
|
|
|
Scene* m_pCurrentScene;
|
|
|
|
|
|
Scene* m_pNextScene;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
std::stack<Scene*> m_SceneStack;
|
|
|
|
|
|
LARGE_INTEGER m_nAnimationInterval;
|
|
|
|
|
|
CSize m_Size;
|
|
|
|
|
|
int m_nWindowMode;
|
|
|
|
|
|
bool m_bRunning;
|
|
|
|
|
|
bool m_bSaveScene;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void _initGraph();
|
|
|
|
|
|
void _mainLoop();
|
|
|
|
|
|
void _enterNextScene();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class FreePool
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
|
|
|
|
|
friend Object;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
private:
|
|
|
|
|
|
// ˢ<><CBA2><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|
|
|
|
|
static void __flush();
|
|
|
|
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷų<CDB7>
|
|
|
|
|
|
static void __add(Object * nptr);
|
2017-10-05 11:28:13 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>нڵ<D0BD>
|
|
|
|
|
|
static void __clearAllObjects();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Scene
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
|
|
|
|
|
friend MouseMsg;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Scene();
|
|
|
|
|
|
~Scene();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD>ִ<EFBFBD><D6B4>
|
|
|
|
|
|
virtual void onEnter();
|
|
|
|
|
|
// <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뿪<EFBFBD><EBBFAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>Զ<EFBFBD>ִ<EFBFBD><D6B4>
|
|
|
|
|
|
virtual void onExit();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void add(Node * child, int zOrder = 0);
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD>ӳ<EFBFBD>Ա
|
|
|
|
|
|
bool del(Node * child);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>Ա
|
|
|
|
|
|
void clearAllChildren();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
std::vector<Node*> m_vChildren;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void _exec();
|
|
|
|
|
|
void _onDraw();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Object
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend FreePool;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Object();
|
|
|
|
|
|
virtual ~Object();
|
|
|
|
|
|
|
2017-10-05 00:53:03 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-09-29 17:30:37 +08:00
|
|
|
|
void retain();
|
2017-10-05 00:53:03 +08:00
|
|
|
|
// <20>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-09-29 17:30:37 +08:00
|
|
|
|
void release();
|
2017-10-05 00:53:03 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void autoRelease();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
int m_nRefCount;
|
2017-10-05 11:28:13 +08:00
|
|
|
|
bool m_bAutoRelease;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class MouseMsg
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
MouseMsg();
|
2017-10-05 00:53:03 +08:00
|
|
|
|
MouseMsg(TString name, const MOUSE_CALLBACK& callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
~MouseMsg();
|
|
|
|
|
|
|
2017-10-06 14:25:15 +08:00
|
|
|
|
enum MESSAGE
|
|
|
|
|
|
{
|
|
|
|
|
|
MOVE = 0x0200, // <20><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|
|
|
|
|
LBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
LBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
RBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
RBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
MBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
MBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
WHEEL // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC>̼<EFBFBD><CCBC><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void addListener(TString name, const MOUSE_CALLBACK& callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool delListener(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>̼<EFBFBD><CCBC><EFBFBD>
|
|
|
|
|
|
static void clearAllListeners();
|
2017-10-06 02:32:33 +08:00
|
|
|
|
// <20><>δ<EFBFBD>ļ<F3B6A8B5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void bindListenersWithScene(Scene* scene);
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void clearAllSceneListeners(Scene* scene);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool isLButtonDown();
|
|
|
|
|
|
// <20>Ҽ<EFBFBD><D2BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool isRButtonDown();
|
|
|
|
|
|
// <20>м<EFBFBD><D0BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static bool isMButtonDown();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>
|
|
|
|
|
|
static int getX();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
|
|
|
|
|
|
static int getY();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static CPoint getPos();
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
static int getWheel();
|
2017-10-06 14:25:15 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
static MESSAGE getMsg();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
static void __exec();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString m_sName;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
MOUSE_CALLBACK m_callback;
|
2017-10-06 02:32:33 +08:00
|
|
|
|
Scene * m_pParentScene;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// ִ<>лص<D0BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void onMouseMsg();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class KeyMsg
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
KeyMsg(TString name, const KEY_CALLBACK& callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
~KeyMsg();
|
|
|
|
|
|
|
|
|
|
|
|
// ִ<>лص<D0BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void onKbHit(VK_KEY key);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ӽ<EFBFBD><D3BC>̼<EFBFBD><CCBC><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void addListener(TString name, const KEY_CALLBACK& callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD><CCBC><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool delListener(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>̼<EFBFBD><CCBC><EFBFBD>
|
|
|
|
|
|
static void clearAllListeners();
|
2017-10-06 02:32:33 +08:00
|
|
|
|
// <20><>δ<EFBFBD>ļ<F3B6A8B5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void bindListenersWithScene(Scene* scene);
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
static void clearAllSceneListeners(Scene* scene);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20>жϼ<D0B6><CFBC>Ƿ<C7B7><F1B1BBB0>£<EFBFBD><C2A3><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>true
|
|
|
|
|
|
static bool isKeyDown(VK_KEY key);
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><>ĸ<EFBFBD><C4B8>ֵ
|
|
|
|
|
|
static const VK_KEY A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z;
|
|
|
|
|
|
// <20><><EFBFBD>ּ<EFBFBD>ֵ
|
|
|
|
|
|
static const VK_KEY NUM_1, NUM_2, NUM_3, NUM_4, NUM_5, NUM_6, NUM_7, NUM_8, NUM_9, NUM_0;
|
|
|
|
|
|
// С<><D0A1><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD>ֵ
|
|
|
|
|
|
static const VK_KEY NUMPAD_1, NUMPAD_2, NUMPAD_3, NUMPAD_4, NUMPAD_5, NUMPAD_6, NUMPAD_7, NUMPAD_8, NUMPAD_9, NUMPAD_0;
|
|
|
|
|
|
// <20><><EFBFBD>Ƽ<EFBFBD>ֵ
|
|
|
|
|
|
static const VK_KEY Enter, Space, Up, Down, Left, Right, Esc, Shift, LShift, RShift, Ctrl, LCtrl, RCtrl;
|
|
|
|
|
|
// F <20><>ֵ
|
|
|
|
|
|
static const VK_KEY F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
static void __exec();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString m_sName;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
KEY_CALLBACK m_callback;
|
2017-10-06 02:32:33 +08:00
|
|
|
|
Scene * m_pParentScene;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class FontStyle :
|
|
|
|
|
|
public Object
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend Text;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
FontStyle();
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ʹ<EFBFBD><EFBFBD> [<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD>ֺš<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>塢<EFBFBD>»<EFBFBD><EFBFBD>ߡ<EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕȡ<EFBFBD>
|
|
|
|
|
|
* ÿ<EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] <EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
*/
|
|
|
|
|
|
FontStyle(LPCTSTR fontfamily, LONG height = 18, LONG weight = 0, LONG width = 0,
|
|
|
|
|
|
bool italic = 0, bool underline = 0, bool strikeout = 0, LONG escapement = 0,
|
|
|
|
|
|
LONG orientation = 0, bool quality = true);
|
|
|
|
|
|
virtual ~FontStyle();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡĬ<C8A1><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static FontStyle * getDefault();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>߶<EFBFBD>
|
|
|
|
|
|
void setHeight(LONG value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
|
|
|
|
|
|
void setWidth(LONG value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setFontFamily(LPCTSTR value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʻ<EFBFBD><CABB><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>Χ0~1000<30><30>Ĭ<EFBFBD><C4AC>Ϊ0
|
|
|
|
|
|
void setWeight(LONG value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
|
|
|
|
|
|
void setItalic(bool value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD>
|
|
|
|
|
|
void setUnderline(bool value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setStrikeOut(bool value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕȣ<C7B6><C8A3><EFBFBD>λ0.1<EFBFBD>ȣ<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
|
void setEscapement(LONG value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>Ƕȣ<C7B6><C8A3><EFBFBD>λ0.1<EFBFBD>ȣ<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
|
void setOrientation(LONG value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>忹<EFBFBD><E5BFB9><EFBFBD>ݣ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊtrue
|
|
|
|
|
|
void setQuality(bool value);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
LOGFONT m_font;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class FontWeight
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
static const LONG dontcare; // <20><>ϸֵ 0
|
|
|
|
|
|
static const LONG thin; // <20><>ϸֵ 100
|
|
|
|
|
|
static const LONG extraLight; // <20><>ϸֵ 200
|
|
|
|
|
|
static const LONG light; // <20><>ϸֵ 300
|
|
|
|
|
|
static const LONG normal; // <20><>ϸֵ 400
|
|
|
|
|
|
static const LONG regular; // <20><>ϸֵ 400
|
|
|
|
|
|
static const LONG medium; // <20><>ϸֵ 500
|
|
|
|
|
|
static const LONG demiBlod; // <20><>ϸֵ 600
|
|
|
|
|
|
static const LONG blod; // <20><>ϸֵ 700
|
|
|
|
|
|
static const LONG extraBold; // <20><>ϸֵ 800
|
|
|
|
|
|
static const LONG black; // <20><>ϸֵ 900
|
|
|
|
|
|
static const LONG heavy; // <20><>ϸֵ 900
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Color
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
static const COLORREF black; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF blue; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF green; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF cyan; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF red; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF magenta; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF brown; // <20><>ɫ
|
|
|
|
|
|
static const COLORREF lightgray; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF darkgray; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF lightblue; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF lightgreen; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF lightcyan; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF lightred; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF lightmagenta; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF yellow; // <20><><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
static const COLORREF white; // <20><>ɫ
|
|
|
|
|
|
|
|
|
|
|
|
// ͨ<><CDA8><EFBFBD>졢<EFBFBD>̡<EFBFBD><CCA1><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>ɫ
|
|
|
|
|
|
static COLORREF getFromRGB(BYTE r, BYTE g, BYTE b);
|
|
|
|
|
|
// ͨ<><CDA8>ɫ<EFBFBD>ࡢ<EFBFBD><E0A1A2><EFBFBD>Ͷȡ<CDB6><C8A1><EFBFBD><EFBFBD>Ⱥϳ<C8BA><CFB3><EFBFBD>ɫ
|
|
|
|
|
|
static COLORREF getFromHSL(float H, float S, float L);
|
|
|
|
|
|
// ͨ<><CDA8>ɫ<EFBFBD>ࡢ<EFBFBD><E0A1A2><EFBFBD>Ͷȡ<CDB6><C8A1><EFBFBD><EFBFBD>Ⱥϳ<C8BA><CFB3><EFBFBD>ɫ
|
|
|
|
|
|
static COLORREF getFromHSV(float H, float S, float V);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD>еĺ<D0B5>ɫֵ
|
|
|
|
|
|
static BYTE getRValue(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD>е<EFBFBD><D0B5><EFBFBD>ɫֵ
|
|
|
|
|
|
static BYTE getGValue(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD>е<EFBFBD><D0B5><EFBFBD>ɫֵ
|
|
|
|
|
|
static BYTE getBValue(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>Ӧ<EFBFBD>ĻҶ<C4BB>ֵ<EFBFBD><D6B5>ɫ
|
|
|
|
|
|
static COLORREF getGray(COLORREF color);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Node :
|
|
|
|
|
|
public Object
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend Scene;
|
|
|
|
|
|
friend BatchNode;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Node();
|
|
|
|
|
|
Node(CPoint p);
|
|
|
|
|
|
Node(int x, int y);
|
|
|
|
|
|
virtual ~Node();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int getX() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual int getY() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual CPoint getPos() const;
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setX(int x);
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setY(int y);
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setPos(int x, int y);
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setPos(CPoint p);
|
|
|
|
|
|
// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
|
|
|
|
|
|
virtual void move(int x, int y);
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void move(CVector v);
|
|
|
|
|
|
// <20>ڵ<EFBFBD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
|
|
|
|
|
|
virtual bool display() const;
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
|
|
|
|
|
|
virtual void setDisplay(bool value);
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
|
|
|
|
|
|
virtual int getZOrder() const;
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3><EFBFBD><EFBFBD>0Ϊ<30><CEAA><EFBFBD>Ȼ<EFBFBD><C8BB>ƣ<EFBFBD><C6A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ײ㣩
|
|
|
|
|
|
virtual void setZOrder(int z);
|
|
|
|
|
|
// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
|
|
|
|
|
|
Scene * getParentScene();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int m_nZOrder;
|
|
|
|
|
|
bool m_bDisplay;
|
|
|
|
|
|
Scene* m_pScene;
|
|
|
|
|
|
CPoint m_Pos;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool _exec(bool active);
|
|
|
|
|
|
virtual void _onDraw() = 0;
|
|
|
|
|
|
void setParentScene(Scene * scene);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class BatchNode :
|
|
|
|
|
|
public Node
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
BatchNode();
|
|
|
|
|
|
virtual ~BatchNode();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
|
|
|
|
|
|
void add(Node *child, int z_Order = 0);
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD>ӽڵ<D3BD>
|
|
|
|
|
|
bool del(Node * child);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
|
|
|
|
|
|
void clearAllChildren();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
std::vector<Node*> m_vChildren;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool _exec(bool active) override;
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Layer :
|
|
|
|
|
|
public BatchNode
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Layer();
|
|
|
|
|
|
virtual ~Layer();
|
|
|
|
|
|
|
|
|
|
|
|
// ͼ<><CDBC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
int getBlock() const;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
void setBlock(bool block);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bBlock;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool _exec(bool active) override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class RectNode :
|
|
|
|
|
|
public Node
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
RectNode();
|
|
|
|
|
|
~RectNode();
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool isCollisionWith(RectNode * rectNode) const;
|
|
|
|
|
|
virtual bool isPointIn(CPoint p) const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void setWindowCenterX();
|
|
|
|
|
|
virtual void setWindowCenterY();
|
|
|
|
|
|
virtual void setWindowCenter();
|
|
|
|
|
|
|
|
|
|
|
|
virtual int getX() const override;
|
|
|
|
|
|
virtual int getY() const override;
|
|
|
|
|
|
virtual CPoint getPos() const override;
|
|
|
|
|
|
virtual int getWidth() const;
|
|
|
|
|
|
virtual int getHeight() const;
|
|
|
|
|
|
virtual CSize getSize() const;
|
|
|
|
|
|
virtual CRect getRect() const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void setX(int x) override;
|
|
|
|
|
|
virtual void setY(int y) override;
|
|
|
|
|
|
virtual void setPos(int x, int y) override;
|
|
|
|
|
|
virtual void setPos(CPoint p) override;
|
|
|
|
|
|
virtual void move(int x, int y) override;
|
|
|
|
|
|
virtual void move(CVector v) override;
|
|
|
|
|
|
virtual void setWidth(int width);
|
|
|
|
|
|
virtual void setHeight(int height);
|
|
|
|
|
|
virtual void setSize(int width, int height);
|
|
|
|
|
|
virtual void setSize(CSize size);
|
|
|
|
|
|
virtual void setRect(int x1, int y1, int x2, int y2);
|
|
|
|
|
|
virtual void setRect(CPoint leftTop, CPoint rightBottom);
|
|
|
|
|
|
virtual void setRect(CRect rect);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CRect m_Rect;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Text :
|
|
|
|
|
|
public RectNode
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend TextButton;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Text();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>崴<EFBFBD><E5B4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
Text(TString text, COLORREF color = Color::white, FontStyle * font = FontStyle::getDefault());
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꡢ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD>崴<EFBFBD><E5B4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
Text(int x, int y, TString text, COLORREF color = Color::white, FontStyle * font = FontStyle::getDefault());
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual ~Text();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>ɫ
|
|
|
|
|
|
COLORREF getColor() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString getText() const;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
|
|
|
|
|
|
FontStyle * getFontStyle();
|
|
|
|
|
|
// <20>ı<EFBFBD><C4B1>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
|
bool isEmpty() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
void setText(TString text);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
void setColor(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setFontStyle(FontStyle * style);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString m_sText;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
COLORREF m_color;
|
|
|
|
|
|
FontStyle * m_pFontStyle;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Image :
|
|
|
|
|
|
public RectNode
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend Sprite;
|
|
|
|
|
|
friend ImageButton;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Image();
|
|
|
|
|
|
// <20><>ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>ȡͼ<C8A1><CDBC>
|
|
|
|
|
|
Image(LPCTSTR ImageFile);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ͼƬ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡͼ<EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣬ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ߶<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
Image(LPCTSTR ImageFile, int x, int y, int width, int height);
|
|
|
|
|
|
virtual ~Image();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float getScaleX() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
float getScaleY() const;
|
|
|
|
|
|
// <20><>ȡ<C8A1><CDB8><EFBFBD><EFBFBD>
|
|
|
|
|
|
float getOpacity() const;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ͼƬ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡͼ<EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool setImage(LPCTSTR ImageFile);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ͼƬ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡͼ<EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>꣬ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ߶<EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool setImage(LPCTSTR ImageFile, int x, int y, int width, int height);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡͼ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD> png
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool setImageFromRes(LPCTSTR pResName);
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡͼ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD> png
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>꣬ͼƬ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ߶<EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
bool setImageFromRes(LPCTSTR pResName, int x, int y, int width, int height);
|
|
|
|
|
|
// <20>ü<EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD> stretch <20><><EFBFBD>죩
|
|
|
|
|
|
void crop(int x, int y, int width, int height);
|
|
|
|
|
|
// <20><>ͼƬ<CDBC><C6AC><EFBFBD>쵽<EFBFBD>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void stretch(int width, int height);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
void setScale(float scaleX, float scaleY);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>Χ 0~1.0f<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD> png ͼƬ<CDBC><C6AC>Ч<EFBFBD><D0A7>
|
|
|
|
|
|
void setOpacity(float value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><CDB8>ɫ
|
|
|
|
|
|
void setTransparentColor(COLORREF value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
|
|
|
|
|
|
void reset();
|
2017-10-05 13:56:00 +08:00
|
|
|
|
|
|
|
|
|
|
// Ԥ<><D4A4><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
static bool preload(LPCTSTR fileName, bool fromRes = false);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7>ͼ
|
|
|
|
|
|
static void saveScreenshot();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-01 14:39:39 +08:00
|
|
|
|
CImage* m_pCImage;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
CRect m_SrcRect;
|
|
|
|
|
|
BYTE m_nAlpha;
|
|
|
|
|
|
float m_fScaleX;
|
|
|
|
|
|
float m_fScaleY;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Sprite :
|
|
|
|
|
|
public RectNode
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend BatchSprite;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Sprite();
|
|
|
|
|
|
Sprite(Image * image);
|
|
|
|
|
|
Sprite(LPCTSTR imageFileName);
|
|
|
|
|
|
virtual ~Sprite();
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ
|
|
|
|
|
|
bool isCollisionWith(Sprite * sprite);
|
|
|
|
|
|
// <20>ľ<DEB8><C4BE><EFBFBD>ͼƬ
|
|
|
|
|
|
virtual void setImage(Image * image);
|
|
|
|
|
|
// <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD>
|
|
|
|
|
|
virtual void addAction(Action * action);
|
|
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
2017-09-29 17:55:33 +08:00
|
|
|
|
virtual void pauseAllActions();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
2017-09-29 17:55:33 +08:00
|
|
|
|
virtual void resumeAllActions();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
2017-09-29 17:55:33 +08:00
|
|
|
|
virtual void stopAllActions();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
virtual float getScaleX() const;
|
|
|
|
|
|
virtual float getScaleY() const;
|
|
|
|
|
|
virtual float getOpacity() const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void setScale(float scaleX, float scaleY);
|
|
|
|
|
|
virtual void setOpacity(float opacity);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
float m_fScaleX;
|
|
|
|
|
|
float m_fScaleY;
|
|
|
|
|
|
BYTE m_nAlpha;
|
|
|
|
|
|
Image * m_pImage;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool _exec(bool active) override;
|
|
|
|
|
|
void _onDraw() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class BatchSprite :
|
|
|
|
|
|
public Node
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
BatchSprite();
|
|
|
|
|
|
virtual ~BatchSprite();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ӿ<EFBFBD><D3BE><EFBFBD>
|
|
|
|
|
|
void addSprite(Sprite * sprite, int z_Order = 0);
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool delSprite(Sprite * child);
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD>
|
|
|
|
|
|
void clearAllSprites();
|
|
|
|
|
|
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>ľ<EFBFBD><C4BE>飬<EFBFBD><E9A3AC><EFBFBD>ؿ<F2B7B5BB>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
Sprite * isCollisionWith(Sprite * sprite);
|
|
|
|
|
|
// <20>жϵ<D0B6><CFB5>Ƿ<EFBFBD><C7B7>ھ<EFBFBD><DABE><EFBFBD><EFBFBD>ڲ<EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬<EFBFBD><E9A3AC><EFBFBD>ؿ<F2B7B5BB>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
Sprite * isPointIn(CPoint point);
|
|
|
|
|
|
// ͬʱ<CDAC><EFBFBD><DEB8><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
virtual void setImage(Image * image);
|
|
|
|
|
|
|
|
|
|
|
|
virtual float getScaleX() const;
|
|
|
|
|
|
virtual float getScaleY() const;
|
|
|
|
|
|
virtual float getOpacity() const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void setScale(float scaleX, float scaleY);
|
|
|
|
|
|
virtual void setOpacity(float opacity);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
std::vector<Sprite*> m_vSprites;
|
|
|
|
|
|
float m_fScaleX;
|
|
|
|
|
|
float m_fScaleY;
|
|
|
|
|
|
BYTE m_nAlpha;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool _exec(bool active) override;
|
|
|
|
|
|
void _onDraw() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class MouseNode :
|
|
|
|
|
|
public RectNode
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
MouseNode();
|
|
|
|
|
|
virtual ~MouseNode();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual bool isMouseIn();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ѡ<EFBFBD><D1A1>
|
|
|
|
|
|
virtual bool isSelected();
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setClickedCallback(const CLICK_CALLBACK & callback);
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setMouseInCallback(const CLICK_CALLBACK & callback);
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setMouseOutCallback(const CLICK_CALLBACK & callback);
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setSelectCallback(const CLICK_CALLBACK & callback);
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setUnselectCallback(const CLICK_CALLBACK & callback);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
virtual void reset();
|
|
|
|
|
|
// <20><><EFBFBD>ýڵ<C3BD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
void setBlock(bool block);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bTarget;
|
|
|
|
|
|
bool m_bBlock;
|
|
|
|
|
|
enum Status { NORMAL, MOUSEIN, SELECTED } m_eStatus;
|
|
|
|
|
|
CLICK_CALLBACK m_OnMouseInCallback;
|
|
|
|
|
|
CLICK_CALLBACK m_OnMouseOutCallback;
|
|
|
|
|
|
CLICK_CALLBACK m_OnSelectCallback;
|
|
|
|
|
|
CLICK_CALLBACK m_OnUnselectCallback;
|
|
|
|
|
|
CLICK_CALLBACK m_ClickCallback;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool _exec(bool active) override;
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>尴ť<E5B0B4><C5A5><EFBFBD>жϷ<D0B6><CFB7><EFBFBD>
|
|
|
|
|
|
virtual bool _isMouseIn();
|
|
|
|
|
|
// <20>л<EFBFBD>״̬
|
|
|
|
|
|
virtual void _setStatus(Status status);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
virtual void _onNormal() = 0;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ
|
|
|
|
|
|
virtual void _onMouseIn() = 0;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ʱ
|
|
|
|
|
|
virtual void _onSelected() = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Button :
|
|
|
|
|
|
public MouseNode
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Button();
|
|
|
|
|
|
virtual ~Button();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ť<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual bool isEnable();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setEnable(bool enable);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setX(int x) override;
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setY(int y) override;
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setPos(int x, int y) override;
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
virtual void setPos(CPoint p) override;
|
|
|
|
|
|
// <20>ƶ<EFBFBD><C6B6><EFBFBD>ť
|
|
|
|
|
|
virtual void move(int x, int y) override;
|
|
|
|
|
|
// <20>ƶ<EFBFBD><C6B6><EFBFBD>ť
|
|
|
|
|
|
virtual void move(CVector v) override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bEnable;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual bool _exec(bool active) override;
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
virtual void _resetPosition() = 0;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void _onNormal() = 0;
|
|
|
|
|
|
virtual void _onMouseIn() = 0;
|
|
|
|
|
|
virtual void _onSelected() = 0;
|
|
|
|
|
|
virtual void _onDisable() = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class TextButton :
|
|
|
|
|
|
public Button
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
TextButton();
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TextButton(TString text);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
TextButton(Text * text);
|
|
|
|
|
|
virtual ~TextButton();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setNormal(Text * text);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>İ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setMouseIn(Text * text);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ʱ<EFBFBD>İ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setSelected(Text * text);
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD>İ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setUnable(Text * text);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
Text * m_pNormalText;
|
|
|
|
|
|
Text * m_pMouseInText;
|
|
|
|
|
|
Text * m_pSelectedText;
|
|
|
|
|
|
Text * m_pUnableText;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _resetPosition() override;
|
|
|
|
|
|
|
|
|
|
|
|
virtual void _setStatus(Status status) override;
|
|
|
|
|
|
virtual void _onNormal() override;
|
|
|
|
|
|
virtual void _onMouseIn() override;
|
|
|
|
|
|
virtual void _onSelected() override;
|
|
|
|
|
|
virtual void _onDisable() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ImageButton :
|
|
|
|
|
|
public Button
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ImageButton();
|
|
|
|
|
|
ImageButton(LPCTSTR image);
|
|
|
|
|
|
ImageButton(Image * image);
|
|
|
|
|
|
virtual ~ImageButton();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ťͼƬ
|
|
|
|
|
|
void setNormal(Image * image);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>İ<EFBFBD>ťͼƬ
|
|
|
|
|
|
void setMouseIn(Image * image);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ʱ<EFBFBD>İ<EFBFBD>ťͼƬ
|
|
|
|
|
|
void setSelected(Image * image);
|
|
|
|
|
|
// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD>İ<EFBFBD>ťͼƬ
|
|
|
|
|
|
void setUnable(Image * image);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
Image * m_pNormalImage;
|
|
|
|
|
|
Image * m_pMouseInImage;
|
|
|
|
|
|
Image * m_pSelectedImage;
|
|
|
|
|
|
Image * m_pUnableImage;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _resetPosition() override;
|
|
|
|
|
|
virtual void _setStatus(Status status) override;
|
|
|
|
|
|
virtual void _onNormal() override;
|
|
|
|
|
|
virtual void _onMouseIn() override;
|
|
|
|
|
|
virtual void _onSelected() override;
|
|
|
|
|
|
virtual void _onDisable() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Shape :
|
|
|
|
|
|
public Node
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Shape();
|
|
|
|
|
|
virtual ~Shape();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
enum STYLE { ROUND, SOLID, FILL } m_eStyle;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
COLORREF getFillColor() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
COLORREF getLineColor() const;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
void setFillColor(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
|
|
|
|
|
|
void setLineColor(COLORREF color);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
void setStyle(STYLE style);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
COLORREF fillColor;
|
|
|
|
|
|
COLORREF lineColor;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _onDraw() override;
|
|
|
|
|
|
virtual void solidShape() = 0;
|
|
|
|
|
|
virtual void fillShape() = 0;
|
|
|
|
|
|
virtual void roundShape() = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Rect :
|
|
|
|
|
|
public Shape
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Rect();
|
|
|
|
|
|
Rect(int x, int y, int width, int height);
|
|
|
|
|
|
virtual ~Rect();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>
|
|
|
|
|
|
int getWidth() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>θ߶<CEB8>
|
|
|
|
|
|
int getHeight() const;
|
|
|
|
|
|
// <20><><EFBFBD>þ<EFBFBD><C3BE>ο<EFBFBD><CEBF><EFBFBD>
|
|
|
|
|
|
void setWidth(int width);
|
|
|
|
|
|
// <20><><EFBFBD>þ<EFBFBD><C3BE>θ߶<CEB8>
|
|
|
|
|
|
void setHeight(int height);
|
|
|
|
|
|
// <20><><EFBFBD>þ<EFBFBD><C3BE>δ<EFBFBD>С
|
|
|
|
|
|
void setSize(int width, int height);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CSize m_Size;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void solidShape() override;
|
|
|
|
|
|
virtual void fillShape() override;
|
|
|
|
|
|
virtual void roundShape() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Circle :
|
|
|
|
|
|
public Shape
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Circle();
|
|
|
|
|
|
Circle(int x, int y, int radius);
|
|
|
|
|
|
virtual ~Circle();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡԲ<C8A1>ΰ뾶
|
|
|
|
|
|
int getRadius() const;
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Բ<EFBFBD>ΰ뾶
|
|
|
|
|
|
void setRadius(int m_nRadius);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int m_nRadius;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void solidShape() override;
|
|
|
|
|
|
virtual void fillShape() override;
|
|
|
|
|
|
virtual void roundShape() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Action :
|
|
|
|
|
|
public Object
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend Sprite;
|
|
|
|
|
|
friend ActionManager;
|
|
|
|
|
|
friend ActionTwo;
|
|
|
|
|
|
friend ActionNeverStop;
|
|
|
|
|
|
friend ActionSequence;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
Action();
|
|
|
|
|
|
virtual ~Action();
|
|
|
|
|
|
|
|
|
|
|
|
bool isRunning();
|
|
|
|
|
|
void start();
|
|
|
|
|
|
void resume();
|
|
|
|
|
|
void pause();
|
|
|
|
|
|
void stop();
|
|
|
|
|
|
void setInterval(UINT ms);
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual Action * copy() const = 0;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual Action * reverse() const;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bRunning;
|
|
|
|
|
|
bool m_bStop;
|
2017-10-06 02:32:33 +08:00
|
|
|
|
Sprite * m_pTargetSprite;
|
|
|
|
|
|
Scene * m_pParentScene;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
UINT m_nMilliSeconds;
|
|
|
|
|
|
LARGE_INTEGER m_nLast;
|
|
|
|
|
|
LARGE_INTEGER m_nAnimationInterval;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() = 0;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) = 0;
|
|
|
|
|
|
virtual void _reset() = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Animation :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
Animation(float duration);
|
|
|
|
|
|
virtual ~Animation();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
UINT m_nDuration;
|
|
|
|
|
|
UINT m_nTotalDuration;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-09-30 16:18:45 +08:00
|
|
|
|
bool _isEnd() const;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionMoveBy :
|
|
|
|
|
|
public Animation
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionMoveBy(float duration, CVector vec);
|
|
|
|
|
|
virtual ~ActionMoveBy();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionMoveBy * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual ActionMoveBy * reverse() const override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CPoint m_BeginPos;
|
|
|
|
|
|
CVector m_MoveVector;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionMoveTo :
|
|
|
|
|
|
public ActionMoveBy
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionMoveTo(float duration, CPoint pos);
|
|
|
|
|
|
virtual ~ActionMoveTo();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionMoveTo * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CPoint m_EndPos;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionScaleBy :
|
|
|
|
|
|
public Animation
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionScaleBy(float duration, float scaleX, float scaleY);
|
|
|
|
|
|
virtual ~ActionScaleBy();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionScaleBy * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual ActionScaleBy * reverse() const override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
float m_nBeginScaleX;
|
|
|
|
|
|
float m_nBeginScaleY;
|
|
|
|
|
|
float m_nVariationX;
|
|
|
|
|
|
float m_nVariationY;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionScaleTo :
|
|
|
|
|
|
public ActionScaleBy
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionScaleTo(float duration, float scaleX, float scaleY);
|
|
|
|
|
|
virtual ~ActionScaleTo();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionScaleTo * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
float m_nEndScaleX;
|
|
|
|
|
|
float m_nEndScaleY;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionOpacityBy :
|
|
|
|
|
|
public Animation
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionOpacityBy(float duration, float opacity);
|
|
|
|
|
|
virtual ~ActionOpacityBy();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionOpacityBy * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual ActionOpacityBy * reverse() const override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
float m_nBeginVal;
|
|
|
|
|
|
float m_nVariation;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionOpacityTo :
|
|
|
|
|
|
public ActionOpacityBy
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionOpacityTo(float duration, float opacity);
|
|
|
|
|
|
virtual ~ActionOpacityTo();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionOpacityTo * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
float m_nEndVal;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionFadeIn :
|
|
|
|
|
|
public ActionOpacityTo
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionFadeIn(float duration) : ActionOpacityTo(duration, 1) {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionFadeOut :
|
|
|
|
|
|
public ActionOpacityTo
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionFadeOut(float duration) : ActionOpacityTo(duration, 0) {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionTwo :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionTwo(Action * actionFirst, Action * actionSecond);
|
|
|
|
|
|
virtual ~ActionTwo();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionTwo * copy() const override;
|
|
|
|
|
|
virtual ActionTwo * reverse(bool actionReverse = true) const;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
2017-10-06 01:07:15 +08:00
|
|
|
|
Action * m_FirstAction;
|
|
|
|
|
|
Action * m_SecondAction;
|
|
|
|
|
|
bool m_bFirstFinished;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionSequence :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2017-09-30 16:18:45 +08:00
|
|
|
|
ActionSequence();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
ActionSequence(int number, Action * action1, ...);
|
|
|
|
|
|
virtual ~ActionSequence();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
void addAction(Action * action);
|
|
|
|
|
|
virtual ActionSequence * copy() const override;
|
|
|
|
|
|
virtual ActionSequence * reverse(bool actionReverse = true) const;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
UINT m_nActionIndex;
|
|
|
|
|
|
std::vector<Action*> m_vActions;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionDelay :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionDelay(float duration);
|
|
|
|
|
|
virtual ~ActionDelay();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionDelay * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionNeverStop :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionNeverStop(Action * action);
|
|
|
|
|
|
virtual ~ActionNeverStop();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionNeverStop * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
Action * m_Action;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionFrames :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionFrames();
|
2017-09-30 16:18:45 +08:00
|
|
|
|
ActionFrames(UINT frameDelay);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
~ActionFrames();
|
|
|
|
|
|
|
|
|
|
|
|
void addFrame(Image * frame);
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionFrames * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
virtual ActionFrames * reverse() const override;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
UINT m_nFrameIndex;
|
|
|
|
|
|
std::vector<Image*> m_vFrames;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionCallback :
|
|
|
|
|
|
public Action
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
ActionCallback(const std::function<void()>& callback);
|
|
|
|
|
|
~ActionCallback();
|
|
|
|
|
|
|
2017-09-30 16:18:45 +08:00
|
|
|
|
virtual ActionCallback * copy() const override;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
std::function<void()> m_Callback;
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
virtual void _init() override;
|
|
|
|
|
|
virtual bool _exec(LARGE_INTEGER nNow) override;
|
|
|
|
|
|
virtual void _reset() override;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class FileUtils
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><>ȡϵͳ<CFB5><CDB3> AppData\Local ·<><C2B7>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString getLocalAppDataPath();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡĬ<C8A1>ϵı<CFB5><C4B1><EFBFBD>·<EFBFBD><C2B7>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString getDefaultSavePath();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD> int <20>͵<EFBFBD>ֵ
|
|
|
|
|
|
static void saveInt(LPCTSTR key, int value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> double <20>͵<EFBFBD>ֵ
|
|
|
|
|
|
static void saveDouble(LPCTSTR key, double value);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD> <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> Unicode <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void saveString(LPCTSTR key, TString value);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ int <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
static int getInt(LPCTSTR key, int default);
|
|
|
|
|
|
// <20><>ȡ double <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
static double getDouble(LPCTSTR key, double default);
|
|
|
|
|
|
// <20><>ȡ <20>ַ<EFBFBD><D6B7><EFBFBD> <20>͵<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> default <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString geTString(LPCTSTR key, TString default);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>Сд<D0A1><D0B4>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static TString getFileExtension(const TString& filePath);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool getSaveFilePath(TString& path, LPCTSTR title = _T("<EFBFBD><EFBFBD><EFBFBD>浽"), LPCTSTR defExt = NULL);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class MusicUtils
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void playBackgroundMusic(TString pszFilePath, bool bLoop = true);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void stopBackgroundMusic(bool bReleaseData = false);
|
|
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void pauseBackgroundMusic();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void resumeBackgroundMusic();
|
|
|
|
|
|
// <20><>ͷ<EFBFBD><CDB7><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void rewindBackgroundMusic();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>
|
|
|
|
|
|
static bool isBackgroundMusicPlaying();
|
|
|
|
|
|
// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
|
|
|
|
|
|
static void setBackgroundMusicVolume(float volume);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static unsigned int playMusic(TString pszFilePath, bool loop = false);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ֹͣ<CDA3><D6B9>Ч
|
|
|
|
|
|
static void stopMusic(unsigned int nSoundId);
|
|
|
|
|
|
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void preloadMusic(TString pszFilePath);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3>Ч
|
|
|
|
|
|
static void pauseMusic(unsigned int nSoundId);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
static void resumeMusic(unsigned int nSoundId);
|
|
|
|
|
|
// ж<><D0B6><EFBFBD><EFBFBD>Ч
|
|
|
|
|
|
static void unloadMusic(LPCTSTR pszFilePath);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void setVolume(TString pszFilePath, float volume);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void pauseAllMusics();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void resumeAllMusics();
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void stopAllMusics();
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
|
|
|
|
|
|
static void end();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0 ~ 1.0f
|
|
|
|
|
|
static void setVolume(float volume);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class Timer
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
2017-10-05 00:53:03 +08:00
|
|
|
|
Timer(TString name, UINT ms, const TIMER_CALLBACK & callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
~Timer();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
void start();
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
void stop();
|
|
|
|
|
|
// <20><>ʱ<EFBFBD><CAB1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool isRunning();
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
void setInterval(UINT ms);
|
|
|
|
|
|
// <20><><EFBFBD>ûص<C3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(const TIMER_CALLBACK& callback);
|
|
|
|
|
|
// <20><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
void setName(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
UINT getInterval() const;
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString getName() const;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>Ӷ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
static void addTimer(Timer * timer);
|
|
|
|
|
|
// <20><><EFBFBD>Ӷ<EFBFBD>ʱ<EFBFBD><CAB1>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static void addTimer(TString name, UINT ms, const TIMER_CALLBACK & callback);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static Timer * getTimer(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool startTimer(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ֹͣ<CDA3>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool stopTimer(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʱ<EFBFBD><CAB1>
|
2017-10-05 00:53:03 +08:00
|
|
|
|
static bool delTimer(TString name);
|
2017-09-29 17:30:37 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
static void clearAllTimers();
|
|
|
|
|
|
|
2017-10-06 02:32:33 +08:00
|
|
|
|
// <20><>δ<EFBFBD>Ķ<F3B6A8B5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void bindTimersWithScene(Scene* scene);
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ж<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
static void stopAllSceneTimers(Scene* scene);
|
|
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
protected:
|
|
|
|
|
|
bool m_bRunning;
|
2017-10-05 00:53:03 +08:00
|
|
|
|
TString m_sName;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
TIMER_CALLBACK m_callback;
|
|
|
|
|
|
LARGE_INTEGER m_nLast;
|
|
|
|
|
|
LARGE_INTEGER m_nAnimationInterval;
|
|
|
|
|
|
UINT m_nMilliSeconds;
|
2017-10-06 02:32:33 +08:00
|
|
|
|
Scene * m_pParentScene;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
static void __exec();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class ActionManager
|
|
|
|
|
|
{
|
2017-10-05 00:53:03 +08:00
|
|
|
|
friend App;
|
|
|
|
|
|
friend Sprite;
|
2017-09-29 17:30:37 +08:00
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
|
|
|
|
|
|
static void startAction(Action * action);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
|
|
|
|
|
|
static void resumeAction(Action * action);
|
|
|
|
|
|
// <20><>ͣһ<CDA3><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
|
|
|
|
|
|
static void pauseAction(Action * action);
|
|
|
|
|
|
// ֹͣһ<D6B9><D2BB><EFBFBD>ض<EFBFBD><D8B6>Ķ<EFBFBD><C4B6><EFBFBD>
|
|
|
|
|
|
static void stopAction(Action * action);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void startSpriteAllActions(Sprite * sprite);
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void resumeSpriteAllActions(Sprite * sprite);
|
|
|
|
|
|
// <20><>ͣһ<CDA3><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void pauseSpriteAllActions(Sprite * sprite);
|
|
|
|
|
|
// ֹͣһ<D6B9><D2BB> Sprite <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void stopSpriteAllActions(Sprite * sprite);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void startAllActions();
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void resumeAllActions();
|
|
|
|
|
|
// <20><>ͣ<EFBFBD><CDA3>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void pauseAllActions();
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void stopAllActions();
|
2017-10-05 11:28:13 +08:00
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
static void clearAllActions();
|
2017-09-29 17:30:37 +08:00
|
|
|
|
|
2017-10-06 02:32:33 +08:00
|
|
|
|
// <20><>δ<EFBFBD>Ķ<F3B6A8B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void bindActionsWithScene(Scene* scene);
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>ϵĶ<CFB5><C4B6><EFBFBD>
|
|
|
|
|
|
static void stopAllSceneActions(Scene* scene);
|
|
|
|
|
|
|
2017-09-29 17:30:37 +08:00
|
|
|
|
private:
|
|
|
|
|
|
static void __exec();
|
|
|
|
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
static void addAction(Action * action);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // End of easy2d namespace
|
|
|
|
|
|
|
2017-10-05 00:53:03 +08:00
|
|
|
|
|
|
|
|
|
|
// Functions Declare
|
|
|
|
|
|
|
|
|
|
|
|
inline void SafeRelease(easy2d::Object * p) { if (p) p->release(); }
|
|
|
|
|
|
inline void SafeDelete(void * p) { if (p) delete p; }
|
|
|
|
|
|
|
2017-09-10 23:56:52 +08:00
|
|
|
|
using namespace easy2d;
|