Data类重做

This commit is contained in:
Nomango 2018-07-17 23:07:51 +08:00
parent 2dfa2b3f07
commit 6bb7d35497
3 changed files with 131 additions and 95 deletions

View File

@ -1,48 +1,90 @@
#include "..\e2dtool.h"
void e2d::Data::saveInt(const String& key, int value, const String& field)
e2d::Data::Data(const String & key, const String & field)
: _key(key)
, _field(field)
, _dataPath(Path::getDataPath())
{
::WritePrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (LPCWSTR)String::parse(value), (LPCWSTR)Path::getDataPath());
}
void e2d::Data::saveDouble(const String& key, double value, const String& field)
void e2d::Data::saveInt(int value)
{
::WritePrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (LPCWSTR)String::parse(value), (LPCWSTR)Path::getDataPath());
::WritePrivateProfileString(
(LPCWSTR)_field,
(LPCWSTR)_key,
(LPCWSTR)String::parse(value),
(LPCWSTR)_dataPath
);
}
void e2d::Data::saveBool(const String& key, bool value, const String& field)
void e2d::Data::saveDouble(double value)
{
::WritePrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (value ? L"1" : L"0"), (LPCWSTR)Path::getDataPath());
::WritePrivateProfileString(
(LPCWSTR)_field,
(LPCWSTR)_key,
(LPCWSTR)String::parse(value),
(LPCWSTR)_dataPath
);
}
void e2d::Data::saveString(const String& key, const String& value, const String& field)
void e2d::Data::saveBool(bool value)
{
::WritePrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (LPCWSTR)value, (LPCWSTR)Path::getDataPath());
::WritePrivateProfileString(
(LPCWSTR)_field,
(LPCWSTR)_key,
(value ? L"1" : L"0"),
(LPCWSTR)_dataPath
);
}
int e2d::Data::getInt(const String& key, int defaultValue, const String& field)
void e2d::Data::saveString(const String& value)
{
return ::GetPrivateProfileInt((LPCWSTR)field, (LPCWSTR)key, defaultValue, (LPCWSTR)Path::getDataPath());
::WritePrivateProfileString(
(LPCWSTR)_field,
(LPCWSTR)_key,
(LPCWSTR)value,
(LPCWSTR)_dataPath
);
}
double e2d::Data::getDouble(const String& key, double defaultValue, const String& field)
int e2d::Data::getInt(int defaultValue)
{
return ::GetPrivateProfileInt(
(LPCWSTR)_field,
(LPCWSTR)_key,
defaultValue,
(LPCWSTR)_dataPath
);
}
double e2d::Data::getDouble(double defaultValue)
{
wchar_t temp[32] = { 0 };
::GetPrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (LPCWSTR)String::parse(defaultValue), temp, 31, (LPCWSTR)Path::getDataPath());
::GetPrivateProfileString((LPCWSTR)_field, (LPCWSTR)_key, (LPCWSTR)String::parse(defaultValue), temp, 31, (LPCWSTR)_dataPath);
return std::stof(temp);
}
bool e2d::Data::getBool(const String& key, bool defaultValue, const String& field)
bool e2d::Data::getBool(bool defaultValue)
{
int nDefaultValue = defaultValue ? 1 : 0;
int nValue = ::GetPrivateProfileInt((LPCWSTR)field, (LPCWSTR)key, nDefaultValue, (LPCWSTR)Path::getDataPath());
int nValue = ::GetPrivateProfileInt(
(LPCWSTR)_field,
(LPCWSTR)_key,
defaultValue ? 1 : 0,
(LPCWSTR)_dataPath);
return nValue != 0;
}
e2d::String e2d::Data::getString(const String& key, const String& defaultValue, const String& field)
e2d::String e2d::Data::getString(const String& defaultValue)
{
wchar_t temp[256] = { 0 };
::GetPrivateProfileString((LPCWSTR)field, (LPCWSTR)key, (LPCWSTR)defaultValue, temp, 255, (LPCWSTR)Path::getDataPath());
::GetPrivateProfileString(
(LPCWSTR)_field,
(LPCWSTR)_key,
(LPCWSTR)defaultValue,
temp,
255,
(LPCWSTR)_dataPath
);
return temp;
}

View File

@ -65,134 +65,134 @@ public:
virtual bool isVisible() const;
// 判断点是否在节点内
virtual bool containsPoint(
bool containsPoint(
const Point& point
);
// 判断两物体是否相交
virtual bool intersects(
bool intersects(
Node * node
);
// 获取节点名称
virtual String getName() const;
String getName() const;
// 获取节点名称的 Hash 值
virtual size_t getHashName() const;
size_t getHashName() const;
// 获取节点绘图顺序
virtual int getOrder() const;
int getOrder() const;
// 获取节点横坐标
virtual double getPosX() const;
double getPosX() const;
// 获取节点纵坐标
virtual double getPosY() const;
double getPosY() const;
// 获取节点坐标
virtual Point getPos() const;
Point getPos() const;
// 获取节点宽度
virtual double getWidth() const;
double getWidth() const;
// 获取节点高度
virtual double getHeight() const;
double getHeight() const;
// 获取节点宽度(不考虑缩放)
virtual double getRealWidth() const;
double getRealWidth() const;
// 获取节点高度(不考虑缩放)
virtual double getRealHeight() const;
double getRealHeight() const;
// 获取节点大小(不考虑缩放)
virtual Size getRealSize() const;
Size getRealSize() const;
// 获取节点的中心点
virtual double getPivotX() const;
double getPivotX() const;
// 获取节点的中心点
virtual double getPivotY() const;
double getPivotY() const;
// 获取节点大小
virtual Size getSize() const;
Size getSize() const;
// 获取节点横向缩放比例
virtual double getScaleX() const;
double getScaleX() const;
// 获取节点纵向缩放比例
virtual double getScaleY() const;
double getScaleY() const;
// 获取节点横向倾斜角度
virtual double getSkewX() const;
double getSkewX() const;
// 获取节点纵向倾斜角度
virtual double getSkewY() const;
double getSkewY() const;
// 获取节点旋转角度
virtual double getRotation() const;
double getRotation() const;
// 获取节点透明度
virtual double getOpacity() const;
double getOpacity() const;
// 获取节点属性
virtual Property getProperty() const;
Property getProperty() const;
// 获取差别属性
virtual Property getExtrapolate() const;
Property getExtrapolate() const;
// 获取节点碰撞体
virtual Collider * getCollider();
Collider * getCollider();
// 获取父节点
virtual Node * getParent() const;
Node * getParent() const;
// 获取节点所在场景
virtual Scene * getParentScene() const;
Scene * getParentScene() const;
// 获取所有名称相同的子节点
virtual std::vector<Node*> getChildren(
std::vector<Node*> getChildren(
const String& name
) const;
// 获取名称相同的子节点
virtual Node* getChild(
Node* getChild(
const String& name
) const;
// 获取所有子节点
virtual const std::vector<Node*>& getAllChildren() const;
const std::vector<Node*>& getAllChildren() const;
// 获取子节点数量
virtual int getChildrenCount() const;
int getChildrenCount() const;
// 移除子节点
virtual bool removeChild(
bool removeChild(
Node * child
);
// 移除所有名称相同的子节点
virtual void removeChildren(
void removeChildren(
const String& childName
);
// 移除所有节点
virtual void removeAllChildren();
void removeAllChildren();
// 从父节点移除
virtual void removeFromParent();
void removeFromParent();
// 设置节点是否显示
virtual void setVisible(
void setVisible(
bool value
);
// 开启或禁用 onUpdate 函数
virtual void setAutoUpdate(
void setAutoUpdate(
bool bAutoUpdate
);
// 设置节点名称
virtual void setName(
void setName(
const String& name
);
@ -351,45 +351,45 @@ public:
);
// 添加子节点
virtual void addChild(
void addChild(
Node * child,
int order = 0 /* 渲染顺序 */
);
// 添加多个子节点
virtual void addChild(
void addChild(
const std::vector<Node*>& nodes, /* 节点数组 */
int order = 0 /* 渲染顺序 */
);
// 执行动作
virtual void runAction(
void runAction(
Action * action
);
// 继续动作
virtual void resumeAction(
void resumeAction(
const String& name
);
// 暂停动作
virtual void pauseAction(
void pauseAction(
const String& name
);
// 停止动作
virtual void stopAction(
void stopAction(
const String& name
);
// 继续所有暂停动作
virtual void resumeAllActions();
void resumeAllActions();
// 暂停所有动作
virtual void pauseAllActions();
void pauseAllActions();
// 停止所有动作
virtual void stopAllActions();
void stopAllActions();
// 更新转换矩阵
void updateTransform();

View File

@ -381,65 +381,59 @@ private:
class Data
{
public:
// 保存 int 类型的值
static void saveInt(
Data(
const String& key, /* 键值 */
int value, /* 数据 */
const String& field = L"Defalut" /* 字段名称 */
);
// 保存 int 类型的值
void saveInt(
int value /* 数据 */
);
// 保存 double 类型的值
static void saveDouble(
const String& key, /* 键值 */
double value, /* 数据 */
const String& field = L"Defalut" /* 字段名称 */
void saveDouble(
double value /* 数据 */
);
// 保存 bool 类型的值
static void saveBool(
const String& key, /* 键值 */
bool value, /* 数据 */
const String& field = L"Defalut" /* 字段名称 */
void saveBool(
bool value /* 数据 */
);
// 保存 字符串 类型的值
static void saveString(
const String& key, /* 键值 */
const String& value, /* 数据 */
const String& field = L"Defalut" /* 字段名称 */
void saveString(
const String& value /* 数据 */
);
// 获取 int 类型的值
// (若不存在则返回 defaultValue 参数的值)
static int getInt(
const String& key, /* 键值 */
int defaultValue, /* 默认值 */
const String& field = L"Defalut" /* 字段名称 */
int getInt(
int defaultValue /* 默认值 */
);
// 获取 double 类型的值
// (若不存在则返回 defaultValue 参数的值)
static double getDouble(
const String& key, /* 键值 */
double defaultValue, /* 默认值 */
const String& field = L"Defalut" /* 字段名称 */
double getDouble(
double defaultValue /* 默认值 */
);
// 获取 bool 类型的值
// (若不存在则返回 defaultValue 参数的值)
static bool getBool(
const String& key, /* 键值 */
bool defaultValue, /* 默认值 */
const String& field = L"Defalut" /* 字段名称 */
bool getBool(
bool defaultValue /* 默认值 */
);
// 获取 字符串 类型的值
// (若不存在则返回 defaultValue 参数的值)
static String getString(
const String& key, /* 键值 */
const String& defaultValue, /* 默认值 */
const String& field = L"Defalut" /* 字段名称 */
String getString(
const String& defaultValue /* 默认值 */
);
protected:
String _key;
String _field;
const String _dataPath;
};