I understood that; I guess I wasn’t clear enough in my answer: if you want to rotate an image, we provide a way to do that in Snap!, namely, make the image a costume, put it on a sprite, and rotate the sprite. Our contract with users isn’t to provide direct access to every Morphic method, any more than it is to provide direct access to every Javascript method! Rather, our contract is to give you a mechanism to accomplish what you want, even if it isn’t the same as our internal mechanism.
(why does it script pic the error as a value?)
Because that’s useful! The idea of result pics is to document the behavior of your program, and if what your program does is error, then we want to let you document the error message.
This is useful for rotating SpriteMorphs, but i need to rotate any kind of morph! (Or at the very least, a TextMorph or StringMorph because these are the only morphs I will work with)
Yes, but at the very least, add a red halo around it or something
This is useful for rotating SpriteMorphs, but i need to rotate any kind of morph! (Or at the very least, a TextMorph or StringMorph because these are the only morphs I will work with)
Can’t you WRITE the text, capture the PEN TRAILS, and make a sprite costume from it?
i want to rotate the morph itself, i dont want to modify the pen trails, i want to rotate a TextMorph and still have it be a TextMorph and not a Costume.
i want to rotate the morph itself, i dont want to modify the pen trails, i want to rotate a TextMorph and still have it be a TextMorph and not a Costume.
Oh. Yeah, sorry. On my list of missing features is text boxes, implemented as a kind of costume, but instead of a bitmap it has (rich) text inside it. And since it’s a costume it should be rotatable. I agree that’s something we should have.
That is a cool lil feature, but i feel like were getting a bit off-topic.
i want to create a new morph.
i want to be able to rotate the morph as i please.
i dont want to modify the pen trails or create a costume.
i want a morph with class [M] to still have an instance of [M] after being rotated.
… i want a morph with class [M] to still have an instance of [M] after being rotated.
I get that you want that. We’re not in the business of helping you program in Javascript. We’re in the business of helping you program in Snap!.
Slightly offtopic but I think relevant anecdote: The Atari 800 personal computer had graphics hardware support for animation by layering four columns of color info, each the full height of the screen and (iirc) 16 pixels wide, in front of the graphics screen. You could animate a scene by changing the x position of each of the four columns.
When we made Atari Logo (I say “we” but my own contribution was very minor, helping with the design and the documentation; my namesake Brian Silverman did the bulk of the programming.) we didn’t expose the full-height capability to users. Instead, we had four turtles, each of which was a 16x16 square shape that could have costumes attached. You could move the turtles in any direction, even though internally the horizontal component of the motion was implemented by just storing a new value in the column’s x position, whereas the vertical component of the motion was implemented by copying each byte of the costume to a different offset in the column. We thought that presenting the users with the time-tested idea of a turtle that could move equally well in any direction was better than giving them direct access to the kludgy graphical column feature of the hardware. We were creating an educational programming language, not providing a funny notation for the Atari machine language.
Some people did want to fondle the Atari hardware in all its kludgy glory, and they learned to program in some language whose intention was to expose every hardware feature.
We feel the same way about Morphic. Morphic is a tool to implement Snap!. If it’s Morphic that interests you, rather than Snap!, more power to you, but don’t ask us to help by adding features to Snap! or to Morphic.
Who knows, maybe if you implement an extension to Morphic that doesn’t introduce bugs, doesn’t slow down Snap!, and doesn’t offend Jens’s sense of aesthetics, and you file a PR, maybe he’ll pull it. But it’s a high bar.