From 714c01991eca86b20e23f5ac60ae68e24f35f273 Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 18 Dec 2015 01:38:53 +0300 Subject: [PATCH] Scale9Sprite test improvemets --- .../CocoStudioGUITest/UIScale9SpriteTest.cpp | 68 ++++++------------ .../CocoStudioGUITest/UIScale9SpriteTest.h | 24 +------ .../cpp-tests/Resources/Images/blocks9cr.png | Bin 1208 -> 3808 bytes .../Resources/hd/Images/blocks9cr.png | Bin 2262 -> 4657 bytes 4 files changed, 25 insertions(+), 67 deletions(-) diff --git a/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.cpp b/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.cpp index 70e38afe42..dd5628d656 100644 --- a/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.cpp +++ b/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.cpp @@ -38,8 +38,6 @@ UIScale9SpriteTests::UIScale9SpriteTests() ADD_TEST_CASE(UIS9FrameNameSpriteSheetRotated); ADD_TEST_CASE(UIS9FrameNameSpriteSheetCropped); ADD_TEST_CASE(UIS9FrameNameSpriteSheetCroppedRotated); - ADD_TEST_CASE(UIS9FrameNameSpriteSheetCroppedImage); - ADD_TEST_CASE(UIS9FrameNameSpriteSheetCroppedRotatedImage); ADD_TEST_CASE(UIS9FrameNameSpriteSheetCroppedSimple); ADD_TEST_CASE(UIS9FrameNameSpriteSheetCroppedRotatedSimple); ADD_TEST_CASE(UIS9BatchNodeScaledNoInsets); @@ -357,9 +355,14 @@ bool UIS9FrameNameSpriteSheetCropped::init() auto blocks = ui::Scale9Sprite::createWithSpriteFrameName("blocks9c.png"); blocks->setPreferredSize(Size(400,80)); - blocks->setPosition(Vec2(x, y)); + blocks->setPosition(Vec2(x, y + 45)); this->addChild(blocks); + auto blocks2 = ui::Scale9Sprite::create("Images/blocks9c.png"); + blocks2->setPreferredSize(Size(400,80)); + blocks2->setPosition(Vec2(x, y - 45)); + this->addChild(blocks2); + return true; } @@ -377,48 +380,13 @@ bool UIS9FrameNameSpriteSheetCroppedRotated::init() auto blocks = ui::Scale9Sprite::createWithSpriteFrameName("blocks9cr.png"); blocks->setPreferredSize(Size(400,80)); - blocks->setPosition(Vec2(x, y)); + blocks->setPosition(Vec2(x, y + 45)); this->addChild(blocks); - return true; - } - - return false; -} - -bool UIS9FrameNameSpriteSheetCroppedImage::init() -{ - if (UIScene::init()) { - auto winSize = Director::getInstance()->getWinSize(); - float x = winSize.width / 2; - float y = 0 + (winSize.height / 2); - - SpriteFrameCache::getInstance()->addSpriteFramesWithFile(s_s9s_blocks9_plist); - - auto blocks = Sprite::createWithSpriteFrameName("blocks9c.png"); - blocks->setScale(400/blocks->getContentSize().width, 80/blocks->getContentSize().height); - blocks->setPosition(Vec2(x, y)); - this->addChild(blocks); - - return true; - } - - return false; -} - -bool UIS9FrameNameSpriteSheetCroppedRotatedImage::init() -{ - if (UIScene::init()) { - auto winSize = Director::getInstance()->getWinSize(); - float x = winSize.width / 2; - float y = 0 + (winSize.height / 2); - - SpriteFrameCache::getInstance()->addSpriteFramesWithFile(s_s9s_blocks9_plist); - - auto blocks = Sprite::createWithSpriteFrameName("blocks9cr.png"); - blocks->setScale(400/blocks->getContentSize().width, 80/blocks->getContentSize().height); - blocks->setPosition(Vec2(x, y)); - this->addChild(blocks); + auto blocks2 = ui::Scale9Sprite::create("Images/blocks9cr.png"); + blocks2->setPreferredSize(Size(400,80)); + blocks2->setPosition(Vec2(x, y - 45)); + this->addChild(blocks2); return true; } @@ -438,9 +406,14 @@ bool UIS9FrameNameSpriteSheetCroppedSimple::init() auto blocks = ui::Scale9Sprite::createWithSpriteFrameName("blocks9c.png"); blocks->setRenderingType(Scale9Sprite::RenderingType::SIMPLE); blocks->setPreferredSize(Size(400,80)); - blocks->setPosition(Vec2(x, y)); + blocks->setPosition(Vec2(x, y + 45)); this->addChild(blocks); + auto blocksSprite = Sprite::createWithSpriteFrameName("blocks9c.png"); + blocksSprite->setScale(400/blocksSprite->getContentSize().width, 80/blocksSprite->getContentSize().height); + blocksSprite->setPosition(Vec2(x, y - 45)); + this->addChild(blocksSprite); + return true; } @@ -459,9 +432,14 @@ bool UIS9FrameNameSpriteSheetCroppedRotatedSimple::init() auto blocks = ui::Scale9Sprite::createWithSpriteFrameName("blocks9cr.png"); blocks->setRenderingType(Scale9Sprite::RenderingType::SIMPLE); blocks->setPreferredSize(Size(400,80)); - blocks->setPosition(Vec2(x, y)); + blocks->setPosition(Vec2(x, y + 45)); this->addChild(blocks); + auto blocksSprite = Sprite::createWithSpriteFrameName("blocks9cr.png"); + blocksSprite->setScale(400/blocksSprite->getContentSize().width, 80/blocksSprite->getContentSize().height); + blocksSprite->setPosition(Vec2(x, y - 45)); + this->addChild(blocksSprite); + return true; } diff --git a/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.h b/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.h index 8d6f872b15..11042a7990 100644 --- a/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.h +++ b/tests/cpp-tests/Classes/UITest/CocoStudioGUITest/UIScale9SpriteTest.h @@ -91,27 +91,7 @@ public: virtual bool init() override; }; -// S9FrameNameSpriteSheetCropped - -class UIS9FrameNameSpriteSheetCroppedImage : public UIScene -{ -public: - CREATE_FUNC(UIS9FrameNameSpriteSheetCroppedImage); - - virtual bool init() override; -}; - -// S9FrameNameSpriteSheetCroppedRotated - -class UIS9FrameNameSpriteSheetCroppedRotatedImage : public UIScene -{ -public: - CREATE_FUNC(UIS9FrameNameSpriteSheetCroppedRotatedImage); - - virtual bool init() override; -}; - -// S9FrameNameSpriteSheetCropped +// S9FrameNameSpriteSheetCroppedSimple class UIS9FrameNameSpriteSheetCroppedSimple : public UIScene { @@ -121,7 +101,7 @@ public: virtual bool init() override; }; -// S9FrameNameSpriteSheetCroppedRotated +// S9FrameNameSpriteSheetCroppedRotatedSimple class UIS9FrameNameSpriteSheetCroppedRotatedSimple : public UIScene { diff --git a/tests/cpp-tests/Resources/Images/blocks9cr.png b/tests/cpp-tests/Resources/Images/blocks9cr.png index 0f25bdc6b9564a102cad1fc7dcebd72b1ed51338..beea86d7f8b02819a408787b44e0bb50a8a97092 100644 GIT binary patch literal 3808 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 literal 2262 zcmbtVYgiL!7M_4yE!T1p!G~!?lxh+Zk^qr3+!DD3As`o7gpdp*Kr%5INMNx>EDF*^ zR6u!9z=Bx36dQTtq7_qD0vg1k_b_LdEt+-5nVIu_-<k-wiW2ldx9x4t&|gtU%RP-lZMqmVE-5s`DH5a7j!6CluE#7%-Y z5SO2^^A_X*0NM`1@F*mT9Yo{7B0N_UgI9j7f7zzoOmjWSR0+b{a)3MW6+OVLI zPsc`5*v@Q;4=G{x9cz{e zSa2x>NugtZ6BWe{0exU81XA!WIG!_+2vVtdBAG&^5;uV)XCjHW;UJN4Xar7{Ax5|goLIJY znZXy5@uWftB80`DhLM{9ry+DKs`R%lh$J6q#j^LugdP|{!Icn*cxTO)mIK-B{~jt5 zeTbGJ9O!qwe@ZM1&yYX_4kUxqq&&26iEA~fBs3o>#6@6fI1HyQpJIprMqrr$mViEC zRB!{E%M*$<3regGhpA_JyRvbcoNA!Xj{K(=_3qXz?Ob zT`4T8*GKu@WBDJ~@^LHy6+_UJ_7A0AUPAjvGyKrF=;TA|Lt?bwrD$UdVz!(`KZ@3n zpm65;*~!%CnzHKh#l^+h_0K0JCmJp{t+{l;fKEe0+S=L}495A!y58Pi`;L}S?<`v@ zr!Sl9d>;-B4@|oK<8EPg%l6$(m)6wN4K|;wt^WCLzaDO*>bVMrVY6h&;qlP)^z^D@ zhX@3MaZF^S-##r9W6Qkkj;_vyR|^)V_Bg#w2M-=JF)@L{%C2>^4~-5J9Q|~44D&2= zOtg$WNUq9%E=v;X5XI)Y~8DT@qBS{Q`uJmu_FOx$GC&? zoZ8wB(N7V<)ci)+NJD0a`UROZrDfrUPJ^0@;D~9$P z*K;fO>{3pzYa6htpXywB)bu7~P*}S*EYAtNsv6i06pgX=@9Ld0nUPoCwN}3@4mf!> zC7U@an%jSsp?Wgy`5j#KYx}3UZ#nHVdn?`c>|k_SC?A6^7y%{R@KBNYYp3eu&oa~_ z4vmE`un~=gK^3CI+x_IWmidZkJ@ty*`$Ve1gjr(_g5`iPl(;&e@osw()u! zYUBPE5v6rFRxo5Kv%{Uy_?axmHM`2OUei;BrS%7<&R_^5*GtB~HQU_94Du-b`2j0$ zz3l#kaI^k_m3cVjrm(?Xolj8A_qbJfd|Gg!v`(!eQV#7V?1giQW#CuSAo!Qz!%jwZu z#8g`EYYE$+LQ*mKEmum3m;0lCu)*&i*e#NNQ&0Bbt zYc*M^Clj;EjGEUZ(f4L~9w(m+z-AcU(^9?AxlX1j%=*asbLm|`a$5a-xAn`{31YQ_ zl~QnV5$hOg>3J`@JEiee`y>BNfZiMXxF6nmSt=L87BTVm;GHK~&Tg0f5^zjASI48d zc~umCq8k(Oq;5bu>;Ss&KTjn)VuapbKh%#}7kZqPg-LdjFVqwc2jNZ?ZkYJymg?QB ze?I7S3>`{%@#;{b$Shx)xtiWxuAOMo*O2PYUg7uC_p>gh^Nh`Vs26J^b<$qjzhj)k%FEA4n;FTEiM$R9V)YtYY>Jp0@28*|{UIZ44W6zn-aFb*?(* zjXHKL1fnaS72vi`+__QQawTp8%&*uJ>zUb7ET8WxGFQ7iblZMzV4Kg4Rh8QVvMorI z(QP+yO$4{YYV1g4kRs4vxik{M*%$y6)5)(C3*PbB{{alu Bo#6lg