From d669a0dab355762cf8c318c9369cfb85846fa802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=89=8D=E5=8B=87?= Date: Thu, 12 May 2022 17:32:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cocos2dx-c++/sdk/Private/node.cpp | 133 ++++++++++++++++++++++++------ 1 file changed, 106 insertions(+), 27 deletions(-) diff --git a/cocos2dx-c++/sdk/Private/node.cpp b/cocos2dx-c++/sdk/Private/node.cpp index 102db95..46786bf 100644 --- a/cocos2dx-c++/sdk/Private/node.cpp +++ b/cocos2dx-c++/sdk/Private/node.cpp @@ -1,6 +1,11 @@ #include #include #include "sdk/Public/node.h" +#include +#include +#include +#include +using namespace ui; using namespace cocos2d; using namespace rapidjson; @@ -59,8 +64,12 @@ void NeteaseNode::getSize(float* data) } size.width = size.width / _screenSize.width; size.height = size.height / _screenSize.height; - data[0] = size.width; - data[1] = size.height; + //data[0] = size.width; + //data[1] = size.height; + + auto glView = Director::getInstance()->getOpenGLView(); + data[0] = size.width * glView->getScaleX(); + data[1] = size.height * glView->getScaleY(); } void NeteaseNode::getScale(float* data) @@ -152,7 +161,6 @@ void NeteaseNode::getChildren(Writer& writer){ writer.StartArray(); #if COCOS2D_VERSION >= 0x00020100 && COCOS2D_VERSION < 0x00030000 - CCLOG("into 1"); CCObject* child; CCARRAY_FOREACH(_node->getChildren(), child) { @@ -167,11 +175,9 @@ void NeteaseNode::getChildren(Writer& writer){ writer.EndObject(); } #else - CCLOG("into 2"); Label* label = dynamic_cast(_node); for (auto& child : _node->getChildren()) { if (label != NULL) { - // 这个应该是游戏里面的sprite对象 Sprite* sprite = dynamic_cast(child); if (sprite != NULL) { //not parse Sprite under Label @@ -194,11 +200,8 @@ void NeteaseNode::getChildren(Writer& writer){ void NeteaseNode::setDumpString(Writer& writer) { - int nodeType = -1; - getNodeType(nodeType); - + int nodeType = getNodeType(); string nodeName = _node->getName(); - CCLOG("NAME:%s", nodeName.c_str()); writer.Key("name"); writer.String(nodeName.c_str()); @@ -216,7 +219,7 @@ void NeteaseNode::getPayload(string nodeName, int nodeType, Writer writer.StartArray(); writer.Int(this->getScreenWidth()); writer.Int(this->getScreenHeight()); - CCLOG("ScreenSize: %d, %d", this->getScreenWidth(), this->getScreenHeight()); + //CCLOG("ScreenSize: %d, %d", this->getScreenWidth(), this->getScreenHeight()); writer.EndArray(); writer.Key("rotation"); @@ -337,52 +340,114 @@ void NeteaseNode::getPayload(string nodeName, int nodeType, Writer writer.EndObject(); } -void NeteaseNode::getNodeType(int& nodeType) -{ +int NeteaseNode::getNodeType() { + int nodeType = -10; Layer* layer = dynamic_cast(_node); if (layer != nullptr) { - nodeType = N_Layer; //这个地方不太确定 - return; + nodeType = N_Layer; + return nodeType; } MenuItem* menuItem = dynamic_cast(_node); if (menuItem != nullptr) { nodeType = N_MenuItem; - return; + return nodeType; } Scene* scene = dynamic_cast(_node); if (scene != NULL) { nodeType = N_Scene; - return; + return nodeType; } AtlasNode* atlas = dynamic_cast(_node); if (atlas != NULL) { nodeType = N_AtlasNode; - return; + return nodeType; } LabelTTF* ttf = dynamic_cast(_node); if (ttf != NULL) { nodeType = N_LabelTTF; - return; + return nodeType; } SpriteBatchNode* batch = dynamic_cast(_node); if (batch != NULL) { nodeType = N_SpriteBatchNode; - return; + return nodeType; } Sprite* sprite = dynamic_cast(_node); if (sprite != NULL) { nodeType = N_Sprite; - return; + return nodeType; + } + + Slider* slider = dynamic_cast(_node); + if (slider != nullptr) { + nodeType = N_Slider; + return nodeType; + } + + Label* label = dynamic_cast(_node); + if (label != nullptr) { + nodeType = N_Lable; + return nodeType; + } + + ProgressTimer* processTimer = dynamic_cast(_node); + if (processTimer != nullptr) { + nodeType = N_ProgressTimer; + return nodeType; + } + + TextField* textField = dynamic_cast(_node); + if (textField != nullptr) { + nodeType = N_TextField; + return nodeType; + } + + ClippingNode* clippingNode = dynamic_cast(_node); + if (clippingNode != nullptr) { + nodeType = N_ClippingNode; + return nodeType; + } + + LayerColor* layerColor = dynamic_cast(_node); + if (layerColor != nullptr) { + nodeType = N_LayerColor; + return nodeType; } + + LabelBMFont* layerBMFont = dynamic_cast(_node); + if (layerBMFont != nullptr) { + nodeType = N_LableBMFont; + return nodeType; + } + + Image* image = dynamic_cast(_node); + if (image != nullptr) { + nodeType = N_Image; + return nodeType; + } + + Scale9Sprite* scale9Sprite = dynamic_cast(_node); + if (scale9Sprite != nullptr) { + nodeType = N_Scale9Sprite; + return nodeType; + } + + Button* button = dynamic_cast(_node); + if (button != nullptr) { + nodeType = N_Button; + return nodeType; + } + nodeType = N_Unknown; - return; + return nodeType; } + string NeteaseNode::getNodeTypeStr(int nodeType) { switch (nodeType) { @@ -407,13 +472,27 @@ string NeteaseNode::getNodeTypeStr(int nodeType) case 9: return "GuideTouchNode"; case 10: - return "INode"; + return "Slider"; + case 11: + return "Label"; + case 12: + return "ProgressTimer"; + case 13: + return "ClippingNode"; + case 14: + return "TextField"; + case 15: + return "LayerColor"; + case 16: + return "LableBMFont"; + case 17: + return "Image"; + case 18: + return "Scale9Sprite"; + case 19: + return "Button"; + default: return "Control"; } -} - -void NeteaseNode::doClick(vector& data) noexcept -{ - } \ No newline at end of file From 2f52529bdadcca182892bddd70aeb3395f938cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=89=8D=E5=8B=87?= Date: Thu, 12 May 2022 17:32:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cocos2dx-c++/sdk/Public/node.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/cocos2dx-c++/sdk/Public/node.h b/cocos2dx-c++/sdk/Public/node.h index 2b315de..e3e1bcc 100644 --- a/cocos2dx-c++/sdk/Public/node.h +++ b/cocos2dx-c++/sdk/Public/node.h @@ -18,9 +18,20 @@ enum NodeType { N_LabelTTF = 5, N_SpriteBatchNode = 6, N_Sprite = 7, + N_Guide = 8, N_GuideTouchNode = 9, - N_INode = 10 + + N_Slider = 10, + N_Lable = 11, + N_ProgressTimer = 12, + N_ClippingNode = 13, + N_TextField = 14, + N_LayerColor = 15, + N_LableBMFont = 16, + N_Image = 17, + N_Scale9Sprite = 18, + N_Button = 19, }; @@ -54,7 +65,7 @@ class NeteaseNode { void getPayload(string nodeName, int nodeType, Writer& writer); - void getNodeType(int& nodeType); + int getNodeType(); string getNodeTypeStr(int nodeType); @@ -62,6 +73,4 @@ class NeteaseNode { float getScreenHeight() { return _screenSize.height; } - void doClick(vector& data) noexcept; - }; \ No newline at end of file