Skip to content

Commit 0d0534a

Browse files
Merge pull request cocos2d#14697 from super626/v3.10-fixsprite
fix setflip for batch sprite
2 parents dea1ef1 + 09c1390 commit 0d0534a

File tree

12 files changed

+345
-9
lines changed

12 files changed

+345
-9
lines changed

cocos/2d/CCSprite.cpp

+1-9
Original file line numberDiff line numberDiff line change
@@ -578,15 +578,6 @@ void Sprite::updateTransform(void)
578578
float x2 = x1 + size.width;
579579
float y2 = y1 + size.height;
580580

581-
if (_flippedX)
582-
{
583-
std::swap(x1, x2);
584-
}
585-
if (_flippedY)
586-
{
587-
std::swap(y1, y2);
588-
}
589-
590581
float x = _transformToBatch.m[12];
591582
float y = _transformToBatch.m[13];
592583

@@ -610,6 +601,7 @@ void Sprite::updateTransform(void)
610601
_quad.br.vertices.set(SPRITE_RENDER_IN_SUBPIXEL(bx), SPRITE_RENDER_IN_SUBPIXEL(by), _positionZ);
611602
_quad.tl.vertices.set(SPRITE_RENDER_IN_SUBPIXEL(dx), SPRITE_RENDER_IN_SUBPIXEL(dy), _positionZ);
612603
_quad.tr.vertices.set(SPRITE_RENDER_IN_SUBPIXEL(cx), SPRITE_RENDER_IN_SUBPIXEL(cy), _positionZ);
604+
setTextureCoords(_rect);
613605
}
614606

615607
// MARMALADE CHANGE: ADDED CHECK FOR nullptr, TO PERMIT SPRITES WITH NO BATCH NODE / TEXTURE ATLAS

tests/cpp-tests/Classes/TileMapTest/TileMapTest.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ TileMapTests::TileMapTests()
4848
ADD_TEST_CASE(TMXBug987);
4949
ADD_TEST_CASE(TMXBug787);
5050
ADD_TEST_CASE(TMXGIDObjectsTest);
51+
ADD_TEST_CASE(TMXFlipTest);
5152
}
5253

5354
TileDemo::TileDemo()
@@ -1457,3 +1458,24 @@ std::string TMXGIDObjectsTest::subtitle() const
14571458
{
14581459
return "Tiles are created from an object group";
14591460
}
1461+
1462+
//------------------------------------------------------------------
1463+
//
1464+
// TMXFlipTest
1465+
//
1466+
//------------------------------------------------------------------
1467+
TMXFlipTest::TMXFlipTest()
1468+
{
1469+
auto map = TMXTiledMap::create("TileMaps/flip-test/flip-test.tmx");
1470+
addChild(map, -1, kTagTileMap);
1471+
}
1472+
1473+
std::string TMXFlipTest::title() const
1474+
{
1475+
return "TMX With Flipped SpriteBatchNode";
1476+
}
1477+
1478+
std::string TMXFlipTest::subtitle() const
1479+
{
1480+
return "There are tiles with Flipped SpriteBatchNode";
1481+
}

tests/cpp-tests/Classes/TileMapTest/TileMapTest.h

+9
Original file line numberDiff line numberDiff line change
@@ -323,4 +323,13 @@ class TMXGIDObjectsTest : public TileDemo
323323
virtual std::string subtitle() const override;
324324
};
325325

326+
class TMXFlipTest : public TileDemo
327+
{
328+
public:
329+
CREATE_FUNC(TMXFlipTest);
330+
TMXFlipTest();
331+
virtual std::string title() const override;
332+
virtual std::string subtitle() const override;
333+
};
334+
326335
#endif
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

tests/cpp-tests/Resources/TileMaps/flip-test/flip-test.tmx

+313
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)