Closed thisandagain closed 7 years ago
Perhaps this should rather be a "favourites" category for blocks used commonly by each user? I have a feeling different kinds of users use different areas of blocks..
We considered that but decided against it given that it could make documentation and many classroom use cases difficult (having every student with a different menu would be difficult / untenable).
I guess you'd have to not feature variables in the top category of used blocks as these would bloat the category? I assume many first projects would not use variables / lists anyhow.
On 10 August 2017 at 13:15, Andrew Sliwinski notifications@github.com wrote:
We considered that but decided against it given that it could make documentation and many classroom use cases difficult (having every student with a different menu would be difficult / untenable).
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/LLK/scratch-gui/issues/603#issuecomment-321534391, or mute the thread https://github.com/notifications/unsubscribe-auth/AGbNvl1zqBn-CnDjfDB9jtPpLPjcweTpks5sWvRrgaJpZM4Oy0Sz .
The backpack can be used to store favorite blocks (once it's implemented), so a star/pin option in the palette seems redundant
@ericrosenbaum @ntlrsk Here are the top 50 block usage counts for all shared projects from the past 30 days. Many thanks to @mewtaylor for building the infrastructure that makes running a report like this so easy. 😄
Block | Count |
---|---|
whengreenflag | 342147 |
doforever | 242981 |
wait:elapsed:from | 222323 |
gotox:y | 190220 |
show | 162577 |
hide | 159287 |
looklike | 155420 |
dorepeat | 145242 |
doif | 145030 |
setvar:to | 128654 |
doplaysoundandwait | 125457 |
whenireceive | 123825 |
broadcast | 121938 |
playsound | 116842 |
nextcostume | 114698 |
forward | 110551 |
changevar:by | 110111 |
say:duration:elapsed:from | 109368 |
readvariable | 105614 |
whenkeypressed | 104759 |
startscene | 102427 |
touching | 100076 |
heading | 94968 |
randomfrom:to | 85943 |
changegraphiceffect:by | 83638 |
changeyposby | 82147 |
stopscripts | 82008 |
setsizeto | 79945 |
turnright | 78759 |
glidesecs:tox:y:elapsed:from | 77041 |
keypressed | 72083 |
changexposby | 68175 |
doifelse | 67499 |
cometofront | 65954 |
dountil | 62767 |
whenclicked | 62692 |
gotospriteormouse | 54632 |
setgraphiceffect:to | 54536 |
createcloneof | 53965 |
whencloned | 51415 |
xpos | 45048 |
ypos | 44180 |
touchingcolor | 43258 |
procdef | 43153 |
deleteclone | 42956 |
turnleft | 41141 |
not | 39661 |
call | 39045 |
changesizeby | 38952 |
This is so interesting and helpful to see, @thisandagain and thanks to @mewtaylor ! As a follow-up question, I wonder about usage counts for projects that aren't remixes (to be more certain that the blocks were dragged out from the palette). Do you think that would differ (e.g., use of setvar to)?
Good question. It does shift, but in some unexpected ways (setvar:to
actually moves up). Here is the same query but with all remixes removed:
Block | Count |
---|---|
whengreenflag | 230764 |
doforever | 156745 |
wait:elapsed:from | 143345 |
gotox:y | 115339 |
show | 97243 |
doif | 96586 |
hide | 95688 |
looklike | 85183 |
setvar:to | 82357 |
dorepeat | 82312 |
forward | 81529 |
say:duration:elapsed:from | 79101 |
playsound | 74043 |
whenkeypressed | 70449 |
changevar:by | 69965 |
whenireceive | 68861 |
broadcast | 67952 |
touching | 67922 |
readvariable | 62627 |
doplaysoundandwait | 62448 |
nextcostume | 61676 |
startscene | 61359 |
heading | 55431 |
randomfrom:to | 49279 |
stopscripts | 48694 |
changeyposby | 47978 |
turnright | 47597 |
changegraphiceffect:by | 45572 |
keypressed | 44206 |
whenclicked | 42630 |
glidesecs:tox:y:elapsed:from | 42162 |
changexposby | 39958 |
setsizeto | 39688 |
gotospriteormouse | 35968 |
doifelse | 34335 |
dountil | 31445 |
bounceoffedge | 30075 |
touchingcolor | 27763 |
cometofront | 27749 |
createcloneof | 25773 |
whencloned | 23703 |
xpos | 22272 |
ypos | 22111 |
setgraphiceffect:to | 21182 |
turnleft | 21178 |
doask | 20895 |
say | 20529 |
deleteclone | 19014 |
procdef | 18407 |
I spent a few minutes playing with this and noticed that some blocks seem to be related to others in a way that quickly unravels (thread-sweater-wise). For example, to include "if" you need to include some way of creating booleans (and vice-versa). Here is an example of self-contained grouping, but note it is missing all booleans.
I did a quick look through the blocks used in the activity cards, and I thought a bit about keeping things simple, and came up with this list:
When green flag clicked When sprite clicked When key pressed Say Play sound until done Change color effect Repeat
These blocks all work for all sprites: sprites will be guaranteed to have at least one sound, and there's no need to have multiple costumes. They're conceptually simple: no reporters, no booleans, no x/y coordinates, etc. And they do not change the state of the sprite, since there are no moves, turns, or size changes (graphics effect are cleared by the stop button), so you don't have the perennial challenge of "re-initializing" (getting things to go back to where they were at the start). But maybe this should include "move" and "turn" :D.
@paulkaplan @ericrosenbaum I'm really liking these lists! Here is a bit of a hybrid proposal between the two as I really think move and turn are essential. Start with @paulkaplan 's list and make the following modifications:
/cc @ntlrsk @morantsur
The set resulting from @thisandagain's suggestion looks like this:
V1
This feels a bit long to me. Here's a slightly reduced version (without "when this sprite clicked" and "wait"):
V2
And a more minimal version:
V3
Thoughts @thisandagain @carljbowman @ntlrsk @morantsur et al?
Honestly, I think v1 is the best here - the wait secs
block is going to be used a lot regardless of project type, and v3 doesn't provide any motion blocks at all.
"Repeat" also isn't as useful/interesting without "wait"; for example "repeat (10): change color effect by (10), wait (1) secs". Wait is also helpful in showing blocks run in a specific order (for example, "change color effect by 10"; "change fisheye effect by 10"; and "change swirl effect by 10", all in a stack, with "wait" blocks between them).
Replace it for a Favourite Blocks category
Let's proceed with v1 for now.
I think that seems good. I think if on edge bounce may be hard to understand with unless shown how to use it in a forever loop (or large number of repeats), so will be good to keep an eye out for that.
I'm closing this because we have now added it, tried it out with kids, and decided to remove it. :)
Implement new category as per discussions with the resources team. Pulling from our research with microworlds and our new vertical category menu, the idea is to pull a small number (<= 12) of commonly used blocks into a new block category at the top of the block palette list. These blocks would be duplicates (they would exist in the this category and their existing "home" category.
Strawcat Process