2D Toolkit Forum
2D Toolkit => Support => Topic started by: roid100 on March 25, 2013, 09:35:28 am
-
Hello,
When I searched the boards, I found this way to calculate the posion of Uvs.
float fX = (sourceTexture.width) * UVs[0].x;
float fY = (sourceTexture.height) * UVs[2].y;
float fX2 = (sourceTexture.width) * UVs[1].x;;
float fY2 = (sourceTexture.height) * UVs[0].y;
float fWidth = fX2 - fX;
float fHeight = -(fY2 - fY);
Almost of all sprite has no problem with this code,
but just some of sprites in the same Collection has got a problem.
They have zero value for 'fWidth'
I attached a JPG.
As you see, some of my sprites has the same value for Uvs[0].x and Uvs[1].x
What is the problem?
How can I read the value of Uvs?
Help me please~~
-
Refer to tk2dClippedSprite.cs - SetGeometry. The orientation of the sprite is explained in there with ascii art diagrams.
Some sprites may be rotated, which is probably why having a problem with it doing it the way you're doing it there.
-
Yes!
I've checked it, and it had been rotated.
One more question please.
Is there easy way to check if it is roated or not in script?
If there is, how can I do?
-
Yup, that code in tk2dClippedSprite there tells you.
// Prior to tk2d 1.92,
if (sourceTexture.flipped) // its rotated and flipped (what usually happens in tk2d)
// tk2d 1.92++
if (sourceTexture.flipped != tk2dSpriteCollectionData.FlipMode.None) // if !flipped
// tk2d 1.92 onwards supports other forms of flipping / rotating.