Discuss Scratch
- Seil
-
Scratcher
3 posts
Mirroring and rotating a sprite
One feature I would find very useful is a way to have the ability to use both the ‘left-right’ and ‘all around’ rotation style at the same time, so that an effect like this can be easily achieved:

Currently, you aren't able to left-right flip a sprite and be able to rotate it. The only workaround I know of is making two almost identical costumes, one just horizontally flipped. In some situations, like the one I happen to be in with the current project I'm working on, you may need several costumes that you want to create this effect with, and making horizontally flipped duplicates for each costume isn't worth compromising project file size, in my opinion… Assets build up pretty fast, loading times even faster.
I was thinking that instead of pointing a sprite in either -90 or 90 degrees to face left or right, a new Motion block is added. Following the Scratchblocks syntax, it could be called something like "flip in direction “ or ”mirror in direction “, with two choices: left and right. Then you could remove the ‘left-right’ option from the ”set rotation style“ block, and maybe just have ‘rotate’ and ‘don’t rotate' as the options. (Or rename the block ”turn rotation ", ‘on’ and ‘off’.)
Now, whether you want your sprite to rotate or not, you still have the power to horizontally flip your sprite whenever and wherever you want. So you could say…
I don't see complexity becoming an issue for beginners. I feel like this change would even make it a little easier to understand, for people of all skills. Of course, this will probably break the semantics of some projects, but that's an easy fix, and overall this will add more flexibility to rotation in particular, and make the effect that I've illustrated easily possible, without the cost of unnecessary costumes.
What do you guys think?

Currently, you aren't able to left-right flip a sprite and be able to rotate it. The only workaround I know of is making two almost identical costumes, one just horizontally flipped. In some situations, like the one I happen to be in with the current project I'm working on, you may need several costumes that you want to create this effect with, and making horizontally flipped duplicates for each costume isn't worth compromising project file size, in my opinion… Assets build up pretty fast, loading times even faster.
I was thinking that instead of pointing a sprite in either -90 or 90 degrees to face left or right, a new Motion block is added. Following the Scratchblocks syntax, it could be called something like "flip in direction “ or ”mirror in direction “, with two choices: left and right. Then you could remove the ‘left-right’ option from the ”set rotation style“ block, and maybe just have ‘rotate’ and ‘don’t rotate' as the options. (Or rename the block ”turn rotation ", ‘on’ and ‘off’.)
Now, whether you want your sprite to rotate or not, you still have the power to horizontally flip your sprite whenever and wherever you want. So you could say…
point in direction (90 v)…and it will appear like the 3rd graphic in the image above. Note, by the way, that the arrow in the turn block is pointing CLOCKWISE… if a sprite is flipped, it would make sense, or at least seem simpler, for its rotation to be flipped as well, since the image, as it appears after flipping, should be rotated. Also, vertical flipping could be just as useful as horizontal flipping, with the addition of ‘up’ and ‘down’ to the flip/mirror block.
mirror in direction [left v] :: motion // new block
turn right (30) degrees
I don't see complexity becoming an issue for beginners. I feel like this change would even make it a little easier to understand, for people of all skills. Of course, this will probably break the semantics of some projects, but that's an easy fix, and overall this will add more flexibility to rotation in particular, and make the effect that I've illustrated easily possible, without the cost of unnecessary costumes.
What do you guys think?
Last edited by Seil (Sept. 7, 2014 09:25:46)
- Blueinkproductions
-
Scratcher
1000+ posts
Mirroring and rotating a sprite
Support. This makes a lot of sense.
- stickfiregames
-
Scratcher
1000+ posts
Mirroring and rotating a sprite
Support, but the left-right style should be kept in because there is no easy replacement.
- Seil
-
Scratcher
3 posts
Mirroring and rotating a sprite
Thanks everyone. 

Support, but the left-right style should be kept in because there is no easy replacement.If this new block were to be added, the left-right style could easily be implemented, since basically all left-right rotation does is this:
set rotation style [don't rotate v]Pretty easy replacement. If you're talking about projects breaking because of the original left-right style becoming obsolete, I can understand that. And maybe they could leave it in for a while to let whoever needs it get adjusted, then remove it after a week or so… It shouldn't be too long.
forever
if <(direction) < [0]> then
mirror in direction [left v] :: motion
else
mirror in direction [right v] :: motion
end
end
- stickfiregames
-
Scratcher
1000+ posts
Mirroring and rotating a sprite
I'm talking about scripts becoming obsolete. They would have to be replaced with your workaround. It would be even more complicated now that rotation styles can change while a project is running, because the wokraround script would have to only run when the (old) rotation style is left-right.
- RPFluffy
-
Scratcher
1000+ posts
Mirroring and rotating a sprite
Total Kiwi!
Unlike others it makes sense!
Unlike others it makes sense!
- TheHockeyist
-
Scratcher
1000+ posts
Mirroring and rotating a sprite
Support. Perhaps the icon could be the double arrow surrounded by the circular arrow?
- pvz_pro
-
Scratcher
500+ posts
Mirroring and rotating a sprite
no support, just copy the costume and flip it. if you want it to move back, do this:
move (-10) steps
- theliferules9
-
Scratcher
2 posts
Mirroring and rotating a sprite
it's easy. Just put point toward a hidden sprite…
- Pezd
-
Scratcher
100+ posts
Mirroring and rotating a sprite
I think this is a good idea, but I also think that you should be able to mirror up and down to.
mirror in direction [ up v]:: motion
mirror in direction [ down v]:: motion
mirror in direction [ right v]:: motion
mirror in direction [ left v]:: motion
- Platformer123
-
Scratcher
2 posts
Mirroring and rotating a sprite
There is a set rotation style block already though, so sorry. No support
- yoshi5674
-
Scratcher
2 posts
Mirroring and rotating a sprite
I really need this for a game im making called Caillou the Savage

good idea