Discuss Scratch
- Discussion Forums
- » Suggestions
- » My Suggestions (Updated 8/22/14)
- 1234abcdcba4321
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
IMPORTANT! DO NOT POST YOUR OWN IDEAS IN THIS THREAD!
If you're quoting the post, please only quote areas of relevance. Seriously, it fills up the page really quickly.
Non-workaroundable things are in red.
THINGS PEOPLE NEVER, EVER READ ARE IN BOLD.
I think the “If on edge, bounce” block should just be “bounce if <>”.
Make size an effect.
It would replace pen up and pen down.
Easy pen color controls:
It would replace those blocks… You know which ones I'm talking about, right?
I think you should be able to hide/show the mouse.
The variable and list tabs are too big. Change the variable and list blocks to one block with a dropdown:
Arrays would have several options:
As they're more complicated, I think they should be able to be edited easily with an edit menu like custom blocks.
Arrays of more than 2 dimensions would have NO visual indicator.
Arrays would have similar blocks as lists:
- The () contains () and add () list blocks would support arrays with it's dropdown.
– The add block would insert it at spot 1 in every dimension.
- In 2D arrays, the same visual blocks as lists would be available, too.
- New blocks:
Because it's complicated, if you have more than one of the same item in an array, it would just do it for all of them.
And don't forget the actual array block. It would have to be more complicated than the list block, though.
I think the when [] > () block should be simple: When <>.
For a better explanation, it would run fully server-side. If it takes more than a second to run, the script would stop itself. After it does all the actions, any cloud data will be saved, but everything else will be returned to how it was left before.
How about a “Link to” block? It would be full scratchers only and would have a confirmation message (also with a “Don't accept links this session” option that makes the confirmation message disappear and no others to show up, making you not go to any links)
In addition, something to detect what's in clipboard. (Credit to @CodeLegend) (Semi-workaroundable)
How about a “stop asking” block?
Maybe this would be nice?
Sprite
Variable
List
Broadcast
Costume
Backdrop
Sound
Custom
Custom dropdowns would allow you to type in what's in the dropdown.
Custom reporters. These would be simple reporter blocks.
There would be a new return block, and a new define block.
Artwork here, in the original thread
Also, C-block and hat block customs. (Oh wait, that's not possible with normal programming? Who cares )
They would run for the sprite they were placed in. It would be activated as a checkbox in the options menu.
And finally, local variables.
In the custom block option screen, there would be a new option: “Add local variable”. This would give the script it's own variable. What pressing the button, you would be able to name it, but that's it.
The vars would be accessible in dropdowns once the blocks are dragged into the script.
Number 3, look at it for art; don't forget to support the suggestion!
You should make it so that: empty boolean spot = true, then list that somewhere. (So <not <blank>> would return false)
Now enhanced with new scratchblocks!
Now with coloring!
Well, I think that's about it.
If you're quoting the post, please only quote areas of relevance. Seriously, it fills up the page really quickly.
Non-workaroundable things are in red.
THINGS PEOPLE NEVER, EVER READ ARE IN BOLD.
I think the “If on edge, bounce” block should just be “bounce if <>”.
bounce if <> // category=motionI think there should be a function to move the mouse.
move mouse to x: () y: () // category=motionTo make it possible to leave projects, it would only work if you're focused on the game. You could press esc to lose focus, and it gives you a warning about how to use esc to stop it. (Like the username block.)
Make size an effect.
change [size v] effect by (25)Why not add an eraser mode to pen?
set [size v] effect to (0)
Set pen mode to [draw v] // category=penIt would have draw, erase, and off.
It would replace pen up and pen down.
Easy pen color controls:
set pen [hue v] to () // category=penIt would have hue, brightness, colorness (saturation), red, green, and blue.
change pen [red v] by () // category=pen
It would replace those blocks… You know which ones I'm talking about, right?
I think you should be able to hide/show the mouse.
[show v] [mouse-pointer v] :: looks // first dropdown has show hide show-flippedThe second dropdown would include all sprites.
The variable and list tabs are too big. Change the variable and list blocks to one block with a dropdown:
([variable v]) // category=variablesHow about some advanced stuff?
([list v]) // category=list
set [variable v]'s display type to [normal v] // category=variablesHow about boolean variables? They would be faster to work with than normal variables in = boxes.
set [variable v]'s slider min to [] // category=variables
set [variable v]'s slider max to [] // category=variables
([variable v]'s [slider min v] ::variables) // slider min, slider max, display type, x pos, y pos
move [variable v] to x: () y: () // category=variables
move [list v] to x: () y: () // category=list
resize [list v] to () pixels wide and () pixels tall // category=list
<variable [variable v] is showing?> // category=variables
<list [list v] is showing?> // category=list
<boolean variable> // category=variablesReplace the length of list with a new block:
set [boolean variable v] to <>
([length v] of [list v] :: list) // length, area, width, height, x pos, y posThe video has on-flipped, so why not show-flipped?
[show-flipped v] variable [variable v] // category=variablesNow, a new section: Arrays!
[show-flipped v] list [list v] // category=list
Arrays would have several options:
Name of array: []Now, in the dimensions option, 0 creates a variable, 1 creates a list. Otherwise, you get an array.
Dimensions in array: ()
Pick one:
() for this sprite only
() for all sprites
() cloud (scratchers only)
As they're more complicated, I think they should be able to be edited easily with an edit menu like custom blocks.
Arrays of more than 2 dimensions would have NO visual indicator.
Arrays would have similar blocks as lists:
- The () contains () and add () list blocks would support arrays with it's dropdown.
– The add block would insert it at spot 1 in every dimension.
- In 2D arrays, the same visual blocks as lists would be available, too.
- New blocks:
shift [item] () places in dimension () of [array v] // Does what you'd think it doesAn array begins with an empty queue.
bring [item] to place () in dimension () of [array v] // Effectively the set function for the above
delete [item] in [array v] // Do you need to know what it does?
[show v] array [array v] // 2D arrays only
(length in dimension () of [array v]) // self-explanatory
(total amount of items in [array v]) // also self-explanatory
[add v] dimension () from queue of [array v] // add, remove, add-flipped. This is needed for the next block.
item (), (), () of [array v] // The dimensions used would be the dimensions in queue.
Because it's complicated, if you have more than one of the same item in an array, it would just do it for all of them.
And don't forget the actual array block. It would have to be more complicated than the list block, though.
I think the when [] > () block should be simple: When <>.
when <>:: events hatTo help with the when green flag clicked block, there should be a block for when someone leaves the project. It would be a full-scratcher only block and would only trigger if the user is a full scratcher.
when project left :: events hatThe only reason why I want it is to change cloud data.
For a better explanation, it would run fully server-side. If it takes more than a second to run, the script would stop itself. After it does all the actions, any cloud data will be saved, but everything else will be returned to how it was left before.
How about a “Link to” block? It would be full scratchers only and would have a confirmation message (also with a “Don't accept links this session” option that makes the confirmation message disappear and no others to show up, making you not go to any links)
Link to [link.link/link] // category=controlMaybe something to toggle turbo mode, so you can't cheat by activating it or something?
turn turbo mode [on v] ::control //on, off, switchedI also think we should have an “auto-copy” block. It would automatically copy what's in the textbox.
In addition, something to detect what's in clipboard. (Credit to @CodeLegend) (Semi-workaroundable)
copy [thing] to clipboard // category=controlHere's a not-confusing way for a broadcast received? boolean. (or two)
(clipboard ::sensing) // maybe control?
<color [#f0f] is touching [sprite v]?> // I think this block would be useful.
([message1 v] received in last (1) secs? :: sensing) // perhaps event?This block seems quite nice for those who hate direct theft. (As far as I know, it's non-workaroundable)
(last broadcast received :: sensing) // same here too...
(Owner of [this v] project ::sensing) //This remixed or original.I want some booleans:
<[sprite v] is showing?> // category=sensingAdvanced timer settings!
<player is a scratcher? ::sensing> // So you could display an extra message saying they need to be a full scratcher to save and hide the save button for new scratchers
(timer (1) :: sensing) // yes the number is for multiple timersThe event block that uses the timer could be split a bit more.
[reset v] timer (1) :: sensing // reset start and stop
How about a “stop asking” block?
Stop asking // category=sensingHmmm, I wonder what these would do?
<[left v] mouse down? :: sensing> // left middle rightA small update to this reporter block…
<[sprite v] is [say v]ing? ::sensing> // say think ask
([layer v] of [sprite v]) // returns which layer the sprite is in.And what about this?
([size effect v] of [sprite v]) // and don't forget the other effects!
(what [sprite v] is saying ::sensing) // Returns what the sprite is saying/thinking/askingI can't think of a better wording.
Maybe this would be nice?
<touching clone of [sprite v]? ::sensing>There should be more key sensing: tab, Lctrl, Rctrl, Lshift, Rshift, Enter, Backspace, any letter, any number. I'd also like -=\;',./ alt and the F keys, along with any symbol. Any would also be helpful. (Only workaroundable by hacking, but everything should be allowed without hacking)
when [tab v] key pressedPut the +, -, *, /, and mod blocks into a single block with a dropdown.
if <key [Lshift v] pressed?> then
say [YAY!!!!!]
(() [+ v] ()) // category=operatorsMerge the =, >, and < blocks.
<[] [= v] [] ::operators> // it's booleanRemove the round block and put it in the dropdown directly below it.
([round v] of (9) ::operators)…Why the hell not?
([pi v] ::operators) // pi e infinityA ^ block would also be useful. With that, the 10^, log, e^, ln, and sqrt functions wouldn't be required. (It would also be in the dropdown.)
(() [^ v] ()) // category=operatorsDropdowns in custom blocks.
define I want [thing]sThe options would be:
I want [dropdown v]s // category=custom
Sprite
Variable
List
Broadcast
Costume
Backdrop
Sound
Custom
Custom dropdowns would allow you to type in what's in the dropdown.
Custom reporters. These would be simple reporter blocks.
There would be a new return block, and a new define block.
define reporterThis says the value of the block. If the script reaches the bottom, it would return what's in the return block at the bottom. (Where you drag the return block from). Same if a “stop script” block is used in the custom reporter.
reporter :: cstart custom // part of the define block
{return [block] :: cap custom} :: cap cend // eh, good enough.
Artwork here, in the original thread
Also, C-block and hat block customs. (Oh wait, that's not possible with normal programming? Who cares )
define C/hat blockNext up, global custom blocks.
{run ::custom} ::custom // since I can't put this anywhere else
stuff ::grey
run ::custom
stuff ::grey
run ::custom
stuff ::grey
They would run for the sprite they were placed in. It would be activated as a checkbox in the options menu.
And finally, local variables.
In the custom block option screen, there would be a new option: “Add local variable”. This would give the script it's own variable. What pressing the button, you would be able to name it, but that's it.
The vars would be accessible in dropdowns once the blocks are dragged into the script.
Number 3, look at it for art; don't forget to support the suggestion!
You should make it so that: empty boolean spot = true, then list that somewhere. (So <not <blank>> would return false)
Now enhanced with new scratchblocks!
Now with coloring!
Well, I think that's about it.
Last edited by 1234abcdcba4321 (Dec. 26, 2014 19:07:40)
I'd highly appreciate it if you were to follow me. Don't forget to go to my profile.
All of my programming suggestions <— You should really get the suggestions move back to the suggestions forum!
Five hundred posts! I never expected to get up there… In only 2-3 months.
Does anyone know what a signature is? I mean, I've already seen 6-7 people get confused.
- Minimaster7
- Scratcher
64 posts
My Suggestions (Updated 8/22/14)
I disagree with make size a effect, because of
clear graphic effects
Last edited by Minimaster7 (Dec. 3, 2013 23:28:42)
;
- AonymousGuy
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
One set of scratchblocks for you:
…There should be some more in-depth user sensors:<[Should be boolean] is a scratcher?> // category=sensingOh, and that dropdown should have follower and following in it. As well as shared project.
([I'm not too sure about this]'s [post v] count) // category=sensing
Put the +, -, *, /, and mod blocks into a single block with a dropdown….
.
if <not <(username) is a scratcher?>>
say [Sorry, this project is for scratchers only.] for (2) secs
stop [all v]
end
Which is why this would not work very well.
Or,
if <((username)'s [follower v] count) < [50]>Of course people could just get around this by using “See Inside”, but what if the script this was in was really complicated?
say [Sorry, you have to be popular to view this project.] for (2) secs
stop [all v]
end
- 1234abcdcba4321
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
Yeah, I wasn't so sure about the second one.
Why I wanted the first one:
Why I wanted the first one:
if <(username) is a scratcher?> thenOn the save button.
show
end
Last edited by 1234abcdcba4321 (Dec. 4, 2013 00:40:38)
I'd highly appreciate it if you were to follow me. Don't forget to go to my profile.
All of my programming suggestions <— You should really get the suggestions move back to the suggestions forum!
Five hundred posts! I never expected to get up there… In only 2-3 months.
Does anyone know what a signature is? I mean, I've already seen 6-7 people get confused.
- meowflash
- Scratcher
500+ posts
My Suggestions (Updated 8/22/14)
I support all!
More Stuff|My Bandcamp
My DeviantArt|Intro Voting For December 2015 August 10th 2016
Check out my Github, too!
Kumquats, this signature is inedible and poisonus.
Also try the code below in IBNIZ.
sxsaxAr+waxBr-*
- cobraguy
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
I don't support removing
because they end up saving alot of time for big projects. You also have to the of the younger Scratchers and how the workarounds are not as clear to them. But they actually save alot of time and make your script look alot cleaner than it would look if you had a whole bunch of operators and variables in them.
change x by ()
set x to ()
change y by ()
set y to ()
change [bleh v] by (1)
because they end up saving alot of time for big projects. You also have to the of the younger Scratchers and how the workarounds are not as clear to them. But they actually save alot of time and make your script look alot cleaner than it would look if you had a whole bunch of operators and variables in them.
- ARM32
- Scratcher
38 posts
My Suggestions (Updated 8/22/14)
I do NOT support you on these.
I DO want these though.
I ALSO want these.
change x by (10)
set x to (0)
change y by (10)
set y to (0)
change [variable v] by (1)
set [size v] effect to (0)
change [size v] effect by (25)
I DO want these though.
<[ARM32] is a [scratcher v]?> // category=sensing
([post v] number of [ARM32]) // category=sensing
<is [ARM32] a guest?> // category=sensing
I ALSO want these.
<[message1 v] received?> // category=events
<I am a [clone v]?> // category=control
<<> xor <>> // category=operators
<<> nand <>> // category=operators
<<> nor <>> // category=operators
Last edited by ARM32 (Dec. 8, 2013 15:57:26)
when green flag clicked
go to [my profile page v] // http://scratch.mit.edu/users/arm32
point towards [my projects v]
click [my featured project v]::sensing
set [awesome v] to <true::operators>
- xlk
- Scratcher
100+ posts
My Suggestions (Updated 8/22/14)
the guest/scratcher detector can be made:
(username) = () -> scratcher
for xor, put this:
<not <<boolean1> = <boolean2>>>
size isn't like effects, that have limits, it is a proportion. It can't be 0, and can be as big as you want. Colour, ghost, brightne, all these have limits.
pi would be nice
e is e^1 ¬¬
(username) = () -> scratcher
for xor, put this:
<not <<boolean1> = <boolean2>>>
size isn't like effects, that have limits, it is a proportion. It can't be 0, and can be as big as you want. Colour, ghost, brightne, all these have limits.
pi would be nice
e is e^1 ¬¬
- 1234abcdcba4321
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
the guest/scratcher detector can be made:
(username) = () -> scratcher
for xor, put this:
<not <<boolean1> = <boolean2>>>
size isn't like effects, that have limits, it is a proportion. It can't be 0, and can be as big as you want. Colour, ghost, brightne, all these have limits.
pi would be nice
e is e^1 ¬¬
So THAT's why you can put booleans in string slots?
Thanks, removing that from the list.
I'd highly appreciate it if you were to follow me. Don't forget to go to my profile.
All of my programming suggestions <— You should really get the suggestions move back to the suggestions forum!
Five hundred posts! I never expected to get up there… In only 2-3 months.
Does anyone know what a signature is? I mean, I've already seen 6-7 people get confused.
- AonymousGuy
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
Even if there is an easy workaround, it takes up a lot of space as cobraguy pointed out. Also, other languages have things like this: Set/Change x/y should be removed, workarounds are really simple.change x by ()
set x to ()
change y by ()
set y to ()
go to x: (x position) y: (0) // set workaround
go to x: ((x position) + (1)) y: (y position)
….change [variable v] by (1)….
set [variable v] to ((variable) + (1)) // this is the workaround
var += 5 //The same as change [var v] by (5)
Also, they simplify things for new scratchers by a lot.
- TES-Pro
- Scratcher
63 posts
My Suggestions (Updated 8/22/14)
you already got
foreverremoved, why do you want this so bad.
if <> then
endend
Anyone who wants to play Shadow of Mordor because of the nemesis system should try to recreate it in scratch (well now I'm committed).
- Failord
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
NOT support you on these.1.) I dochange x by (10)
set x to (0)
change y by (10)
set y to (0)change [variable v] by (1)
set [size v] effect to (0)
change [size v] effect by (25)
2.) I DO want these though.<[ARM32] is a [scratcher v]?> // category=sensing
([post v] number of [ARM32]) // category=sensing
<is [ARM32] a guest?> // category=sensing
3.) I ALSO want these.<[message1 v] received?> // category=events
<I am a [clone v]?> // category=control
<<> xor <>> // category=operators
<<> nand <>> // category=operators
<<> nor <>> // category=operators
1.) I agree.
2.) Unsure. Might be pesky for servers…
3.) No, no, no, and no. The workarounds are easy. We just need to make sure everyone knows about them.
Thanks for the ride, Scratch Team and community! Unfortunately, the time has come for me to move on from Scratch, so I'll no longer be using the forums. Thanks again, and farewell!
Invisible text! This will show you if a profile I claim to be mine IS mine. Just remember to visit the profile and see if I confirmed in the comments.
For old time's sake, see the revolutionary Laser Battle 2.0! Also see Unstoppable Game!
And no, the evil kumquats didn't alter my signature…
- cwrivera99
- Scratcher
500+ posts
My Suggestions (Updated 8/22/14)
I disagree with everything. The workarounds and changes can be a bit confusing for new scratchers, and scratch is currently running very smoothly. Everything is perfect the way it is.
when this block is clicked::sensing hat//FYI, this is my old account that I no longer use. My current account is @DaSpudLord.If you are reading this… Then congratulations! You have found the part of my signature that was eaten by a kumquat! (On a side note, you are probably in a kumquat's stomach.) Now get out of the kumquat's stomach and go do something productive with your life. Like playing this game over and over again. Very productive.
forever {do (a [scratch v]::events ring)::sound}::extension cstart
say [what the...?] in (the language of [the moon people v]::red)::control
create [spontaneous v] explosion in [a flea's stomach]::motion
That's not right...::cend
- fexlo
- Scratcher
28 posts
My Suggestions (Updated 8/22/14)
There should be some more in-depth user sensors:<[Should be boolean] is a scratcher?> // category=sensing
Workaround to this:
set [x v] to (pick random (1) to (10000)
set [ScratcherTester v] to (item (x) of [random# v])
set [(cloud)ScratcherTester v] to (item (x) of [random# v])
delete (x) of [random# v]
if <(ScratcherTester) = ((cloud)ScratcherTester)> then
do full scratcher stuff
else
do non scratcher stuff
end
Last edited by fexlo (Dec. 15, 2013 13:47:48)
-Fexlo, the Wholockian Nerdfighter of Night Vale, currently away on a hitchhiking trip across the galaxy with my dragon Sapphire. If you don't speak fandom, that means I'm a fan of Doctor Who, Sherlock, the Vlogbrothers (or Nerdfighters), Welcome to Night Vale, the Hitchhiker's Guide to the Galaxy, and Eragon.
- 1234abcdcba4321
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
Changed some stuff. Give me feedback!
I'd highly appreciate it if you were to follow me. Don't forget to go to my profile.
All of my programming suggestions <— You should really get the suggestions move back to the suggestions forum!
Five hundred posts! I never expected to get up there… In only 2-3 months.
Does anyone know what a signature is? I mean, I've already seen 6-7 people get confused.
- cobraguy
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
I like these, but maybe turn these twoset [variable v]'s display type to normal // category=variables
set [variable v]'s display type to large // category=variables
set [variable v]'s display type to slider with min of [] and max of [] // category=variables
move [variable v] to x: () y: () // category=variables
move [list v] to x: () y: () // category=list
resize [list v] to () pixels wide and () pixels tall // category=list
set [variable v]'s display type to normal // category=variables
set [variable v]'s display type to large // category=variables
into a dropdown?
set [variable v]'s display type to [normal v] // category=variables
Last edited by cobraguy (Dec. 17, 2013 01:38:49)
- AonymousGuy
- Scratcher
1000+ posts
My Suggestions (Updated 8/22/14)
Feedback: Changed some stuff. Give me feedback!
Sorry, forgot about this before, but this can't go in the same dropdown because it is not a boolean.(() [< v] ()) // category=operators
Anyways, a lot of that list stuff and what not has been suggested before, but I have made some basic workarounds in the following projects:
Variable Counter
Variable Slider
- Discussion Forums
- » Suggestions
- » My Suggestions (Updated 8/22/14)