Magic_Game/Easy2D/ecommon.h

591 lines
10 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "emacros.h"
#include "etypedef.h"
namespace e2d
{
class EColor
{
public:
enum COMMON_VALUE
{
ALICE_BLUE = 0xF0F8FF,
ANTIQUE_WHITE = 0xFAEBD7,
AQUA = 0x00FFFF,
AQUAMARINE = 0x7FFFD4,
AZURE = 0xF0FFFF,
BEIGE = 0xF5F5DC,
BISQUE = 0xFFE4C4,
BLACK = 0x000000,
BLANCHED_ALMOND = 0xFFEBCD,
BLUE = 0x0000FF,
BLUE_VIOLET = 0x8A2BE2,
BROWN = 0xA52A2A,
BURLY_WOOD = 0xDEB887,
CADET_BLUE = 0x5F9EA0,
CHARTREUSE = 0x7FFF00,
CHOCOLATE = 0xD2691E,
CORAL = 0xFF7F50,
CORNFLOWER_BLUE = 0x6495ED,
CORNSILK = 0xFFF8DC,
CRIMSON = 0xDC143C,
CYAN = 0x00FFFF,
DARK_BLUE = 0x00008B,
DARK_CYAN = 0x008B8B,
DARK_GOLDENROD = 0xB8860B,
DARK_GRAY = 0xA9A9A9,
DARK_GREEN = 0x006400,
DARK_KHAKI = 0xBDB76B,
DARK_MAGENTA = 0x8B008B,
DARK_OLIVE_GREEN = 0x556B2F,
DARK_ORANGE = 0xFF8C00,
DARK_ORCHID = 0x9932CC,
DARK_RED = 0x8B0000,
DARK_SALMON = 0xE9967A,
DARK_SEA_GREEN = 0x8FBC8F,
DARK_SLATE_BLUE = 0x483D8B,
DARK_SLATE_GRAY = 0x2F4F4F,
DARK_TURQUOISE = 0x00CED1,
DARK_VIOLET = 0x9400D3,
DEEP_PINK = 0xFF1493,
DEEP_SKY_BLUE = 0x00BFFF,
DIM_GRAY = 0x696969,
DODGER_BLUE = 0x1E90FF,
FIREBRICK = 0xB22222,
FLORAL_WHITE = 0xFFFAF0,
FOREST_GREEN = 0x228B22,
FUCHSIA = 0xFF00FF,
GAINSCORO = 0xDCDCDC,
GHOST_WHITE = 0xF8F8FF,
GOLD = 0xFFD700,
GOLDENROD = 0xDAA520,
GRAY = 0x808080,
GREEN = 0x008000,
GREEN_YELLOW = 0xADFF2F,
HONEYDEW = 0xF0FFF0,
HOT_PINK = 0xFF69B4,
INDIAN_RED = 0xCD5C5C,
INDIGO = 0x4B0082,
IVORY = 0xFFFFF0,
KHAKI = 0xF0E68C,
LAVENDER = 0xE6E6FA,
LAVENDER_BLUSH = 0xFFF0F5,
LAWN_GREEN = 0x7CFC00,
LEMON_CHIFFON = 0xFFFACD,
LIGHT_BLUE = 0xADD8E6,
LIGHT_CORAL = 0xF08080,
LIGHT_CYAN = 0xE0FFFF,
LIGHT_GOLDENROD_YELLOW = 0xFAFAD2,
LIGHT_GREEN = 0x90EE90,
LIGHT_GRAY = 0xD3D3D3,
LIGHT_PINK = 0xFFB6C1,
LIGHT_SALMON = 0xFFA07A,
LIGHT_SEA_GREEN = 0x20B2AA,
LIGHT_SKY_BLUE = 0x87CEFA,
LIGHT_SLATE_GRAY = 0x778899,
LIGHT_STEEL_BLUE = 0xB0C4DE,
LIGHT_YELLOW = 0xFFFFE0,
LIME = 0x00FF00,
LIME_GREEN = 0x32CD32,
LINEN = 0xFAF0E6,
MAGENTA = 0xFF00FF,
MAROON = 0x800000,
MEDIUM_AQUAMARINE = 0x66CDAA,
MEDIUM_BLUE = 0x0000CD,
MEDIUM_ORCHID = 0xBA55D3,
MEDIUM_PURPLE = 0x9370DB,
MEDIUM_SEA_GREEN = 0x3CB371,
MEDIUM_SLATE_BLUE = 0x7B68EE,
MEDIUM_SPRING_GREEN = 0x00FA9A,
MEDIUM_TURQUOISE = 0x48D1CC,
MEDUIM_VIOLET_RED = 0xC71585,
MIDNIGHT_BLUE = 0x191970,
MINT_CREAM = 0xF5FFFA,
MISTY_ROSE = 0xFFE4E1,
MOCCASIN = 0xFFE4B5,
NAVAJO_WHITE = 0xFFDEAD,
NAVY = 0x000080,
OLD_LACE = 0xFDF5E6,
OLIVE = 0x808000,
OLIVE_DRAB = 0x6B8E23,
ORANGE = 0xFFA500,
ORANGE_RED = 0xFF4500,
ORCHID = 0xDA70D6,
PALE_GOLDENROD = 0xEEE8AA,
PALE_GREEN = 0x98FB98,
PALE_TURQUOISE = 0xAFEEEE,
PALE_VIOLET_RED = 0xDB7093,
PAPAYA_WHIP = 0xFFEFD5,
PEACH_PUFF = 0xFFDAB9,
PERU = 0xCD853F,
PINK = 0xFFC0CB,
PLUM = 0xDDA0DD,
POWDER_BLUE = 0xB0E0E6,
PURPLE = 0x800080,
RED = 0xFF0000,
ROSY_BROWN = 0xBC8F8F,
ROYAL_BLUE = 0x4169E1,
SADDLE_BROWN = 0x8B4513,
SALMON = 0xFA8072,
SANDY_BROWN = 0xF4A460,
SEA_GREEN = 0x2E8B57,
SEA_SHELL = 0xFFF5EE,
SIENNA = 0xA0522D,
SILVER = 0xC0C0C0,
SKY_BLUE = 0x87CEEB,
SLATE_BLUE = 0x6A5ACD,
SLATE_GRAY = 0x708090,
SNOW = 0xFFFAFA,
SPRING_GREEN = 0x00FF7F,
STEEL_BLUE = 0x4682B4,
TAN = 0xD2B48C,
TEAL = 0x008080,
THISTLE = 0xD8BFD8,
TOMATO = 0xFF6347,
TURQUOISE = 0x40E0D0,
VIOLET = 0xEE82EE,
WHEAT = 0xF5DEB3,
WHITE = 0xFFFFFF,
WHITE_SMOKE = 0xF5F5F5,
YELLOW = 0xFFFF00,
YELLOW_GREEN = 0x9ACD32
};
};
class EFontWeight
{
public:
enum COMMON_VALUE
{
THIN = 100,
EXTRA_LIGHT = 200,
ULTRA_LIGHT = 200,
LIGHT = 300,
SEMI_LIGHT = 350,
NORMAL = 400,
REGULAR = 400,
MEDIUM = 500,
DEMI_BOLD = 600,
SEMI_BOLD = 600,
BOLD = 700,
EXTRA_BOLD = 800,
ULTRA_BOLD = 800,
BLACK = 900,
HEAVY = 900,
EXTRA_BLACK = 950,
ULTRA_BLACK = 950
};
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
class EMouseMsg
{
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
enum MOUSE_MSG
{
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>
};
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static DWORD getPosX();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static DWORD getPosY();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static EPoint getPos();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isLButtonDown();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isMButtonDown();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isRButtonDown();
// <20><>ȡ Shift <20><><EFBFBD><EFBFBD>״̬
static bool isShiftDown();
// <20><>ȡ Ctrl <20><><EFBFBD><EFBFBD>״̬
static bool isCtrlDown();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
static DWORD getWheelDelta();
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
static MOUSE_MSG getMsg();
public:
static UINT s_nMsg;
static WPARAM s_wParam;
static LPARAM s_lParam;
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
class EKeyboardMsg
{
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>
enum KEYBOARD_MSG
{
KEY_DOWN = 0x0100, // <20><><EFBFBD><EFBFBD>
KEY_UP // ̧<><CCA7>
};
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
enum class KEY
{
A = '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><C4B8>ֵ
NUM0 = '0', NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, // <20><><EFBFBD>ּ<EFBFBD>ֵ
NUMPAD0 = 0x60, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, // <20><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>̼<EFBFBD>ֵ
F1 = 0x70, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, // F<><46><EFBFBD><EFBFBD>ֵ
MULTIPLY, // <20>˺ż<CBBA><C5BC><EFBFBD>ֵ
ADD, // <20>Ӻż<D3BA><C5BC><EFBFBD>ֵ
SEPARATOR, // <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ֵ
SUBTRACT, // <20><><EFBFBD>ż<EFBFBD><C5BC><EFBFBD>ֵ
DECIMAL, // С<><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
DIVIDE, // <20><><EFBFBD>ż<EFBFBD><C5BC><EFBFBD>ֵ
TAB = 0x09, // TAB <20><><EFBFBD><EFBFBD>ֵ
ENTER = 0x0D, // <20>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>ֵ
SHIFT, CTRL, // SHIFT <20><><EFBFBD><EFBFBD>ֵ
ESC = 0x1B, // ESCAPE <20><><EFBFBD><EFBFBD>ֵ
SPACE = 0x20, // <20>ո<EFBFBD><D5B8><EFBFBD><EFBFBD><EFBFBD>ֵ
PAGE_UP, // PageUp <20><><EFBFBD><EFBFBD>ֵ
PAGE_DOWN, // PageDown <20><><EFBFBD><EFBFBD>ֵ
END, // End <20><><EFBFBD><EFBFBD>ֵ
HOME, // Home <20><><EFBFBD><EFBFBD>ֵ
LEFT, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
UP, // <20>ϼ<EFBFBD><CFBC><EFBFBD>ֵ
RIGHT, // <20>Ҽ<EFBFBD><D2BC><EFBFBD>ֵ
DOWN // <20>¼<EFBFBD><C2BC><EFBFBD>ֵ
};
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
static KEYBOARD_MSG getMsg();
// <20><>ȡ<EFBFBD><C8A1>ֵ
static KEY getKeyValue();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
static DWORD getCount();
// <20><>ȡ<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isKeyDown(
KEY key
);
// <20><>ȡ<EFBFBD><C8A1>Сд<D0A1><D0B4><EFBFBD><EFBFBD>״̬
static bool isCapitalLockOn();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isNumpadLockOn();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
static bool isScrollLockOn();
public:
static UINT s_nMsg;
static WPARAM s_wParam;
static LPARAM s_lParam;
};
class EGeometry;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
class EPhysicsMsg
{
public:
enum INTERSECT_RELATION
{
UNKNOWN = 0, /* <20><>ϵ<EFBFBD><CFB5>ȷ<EFBFBD><C8B7> */
DISJOINT = 1, /* û<>н<EFBFBD><D0BD><EFBFBD> */
IS_CONTAINED = 2, /* <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
CONTAINS = 3, /* <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD> */
OVERLAP = 4 /* <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> */
};
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
static INTERSECT_RELATION getMsg();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static EGeometry * getActiveGeometry();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static EGeometry * getPassiveGeometry();
public:
static INTERSECT_RELATION s_nRelation;
static EGeometry * s_pActiveGeometry;
static EGeometry * s_pPassiveGeometry;
};
class EObjectManager;
class EObject
{
friend EObjectManager;
public:
EObject();
virtual ~EObject();
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
void retain();
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>һ
void release();
private:
int m_nRefCount;
bool m_bManaged;
};
class EText;
class EFont :
public EObject
{
friend EText;
public:
EFont();
EFont(
EString fontFamily,
float fontSize = 22,
UINT32 color = EColor::WHITE,
UINT32 fontWeight = EFontWeight::REGULAR,
bool italic = false
);
virtual ~EFont();
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>ֺ<EFBFBD>
float getFontSize() const;
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸֵ
UINT32 getFontWeight() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
UINT32 getColor() const;
// <20>Ƿ<EFBFBD><C7B7><EFBFBD>б<EFBFBD><D0B1>
bool isItalic() const;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void setFamily(
EString fontFamily
);
// <20><><EFBFBD><EFBFBD><EFBFBD>ֺ<EFBFBD>
void setSize(
float fontSize
);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸֵ
void setWeight(
UINT32 fontWeight
);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
void setColor(
UINT32 color
);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>
void setItalic(
bool value
);
protected:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>ʽ
void _initTextFormat();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ָ<EFBFBD>ʽ
IDWriteTextFormat * _getTextFormat();
protected:
EString m_sFontFamily;
float m_fFontSize;
UINT32 m_FontWeight;
UINT32 m_Color;
bool m_bItalic;
bool m_bRecreateNeeded;
IDWriteTextFormat * m_pTextFormat;
};
class ESprite;
class ETexture :
public EObject
{
friend ESprite;
public:
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
ETexture();
// <20>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1>Դ
ETexture(
const EString & fileName
);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
ETexture(
LPCTSTR resourceName,
LPCTSTR resourceType
);
virtual ~ETexture();
// <20>ӱ<EFBFBD><D3B1><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD>ȡ<EFBFBD><C8A1>Դ
void loadFromFile(
const EString & fileName
);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
void loadFromResource(
LPCTSTR resourceName,
LPCTSTR resourceType
);
// <20><>ȡԴͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
virtual float getSourceWidth() const;
// <20><>ȡԴͼƬ<CDBC>߶<EFBFBD>
virtual float getSourceHeight() const;
// <20><>ȡԴͼƬ<CDBC><C6AC>С
virtual ESize getSourceSize() const;
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
static bool preload(
const EString & fileName
);
// Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
static bool preload(
LPCTSTR resourceName,
LPCTSTR resourceType
);
// <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
static void clearCache();
protected:
ID2D1Bitmap * _getBitmap();
protected:
ID2D1Bitmap * m_pBitmap;
};
class ESpriteFrame :
public EObject
{
friend ESprite;
public:
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame();
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
ETexture * texture
);
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
const EString & imageFileName
);
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
LPCTSTR resourceName,
LPCTSTR resourceType
);
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
ETexture * texture,
float x,
float y,
float width,
float height
);
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
const EString & imageFileName,
float x,
float y,
float width,
float height
);
// <20><><EFBFBD><EFBFBD><EFBFBD>յľ<D5B5><C4BE><EFBFBD>֡
ESpriteFrame(
LPCTSTR resourceName,
LPCTSTR resourceType,
float x,
float y,
float width,
float height
);
virtual ~ESpriteFrame();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
float getWidth() const;
// <20><>ȡ<EFBFBD>߶<EFBFBD>
float getHeight() const;
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
ETexture * getTexture() const;
protected:
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
void _setTexture(
ETexture * texture
);
// <20>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>
void _clipTexture(
float x,
float y,
float width,
float height
);
protected:
float m_fSourceClipX;
float m_fSourceClipY;
float m_fSourceClipWidth;
float m_fSourceClipHeight;
ETexture * m_pTexture;
};
}