From 6bb7d35497b98914ddb965f3cb7c1829a98fe020 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Tue, 17 Jul 2018 23:07:51 +0800 Subject: [PATCH] =?UTF-8?q?Data=E7=B1=BB=E9=87=8D=E5=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/Tool/Data.cpp | 76 ++++++++++++++++++++++++++++--------- core/e2dnode.h | 94 +++++++++++++++++++++++----------------------- core/e2dtool.h | 56 ++++++++++++--------------- 3 files changed, 131 insertions(+), 95 deletions(-) diff --git a/core/Tool/Data.cpp b/core/Tool/Data.cpp index 72d57647..273d86fb 100644 --- a/core/Tool/Data.cpp +++ b/core/Tool/Data.cpp @@ -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; } \ No newline at end of file diff --git a/core/e2dnode.h b/core/e2dnode.h index a883a895..35bddcff 100644 --- a/core/e2dnode.h +++ b/core/e2dnode.h @@ -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 getChildren( + std::vector getChildren( const String& name ) const; // 获取名称相同的子节点 - virtual Node* getChild( + Node* getChild( const String& name ) const; // 获取所有子节点 - virtual const std::vector& getAllChildren() const; + const std::vector& 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& 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(); diff --git a/core/e2dtool.h b/core/e2dtool.h index f5684cde..803165e6 100644 --- a/core/e2dtool.h +++ b/core/e2dtool.h @@ -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; };