Discuss Scratch

Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

So, scratch 3.0 looks great! However, I would like to see some new blocks, so I made a list of some of my ideas for blocks. I feel like some of these blocks could help a lot of people, and at the same time it would be simple for new scratchers to understand.

Looks:

setwidthto%setheightto%

These blocks could allow users to stretch their sprites both horizontally and vertically

Sound:

playsoundfromtime

This block, can be used to start a sound from a specific time. With this block, it would also be possible to make a script to
pause sounds.

Pen:

stamplist

This block would be very useful for a lot of users. An image can be stored as a list of pixel colors, and then you can choose the list which you want to stamp. Then the block would draw the image on the screen using the pixel data from the list.

penupandfill

This block would fill the last shape drawn with pen.

writetext

This block would draw the text at the current position of the sprite.

settextfonttosettextsizetowidthoftext

These blocks could allow users to specify their font and the text size. The last block would report the length of pixels that the text would take up at the current size and font.

Sensing:

coloratmouse pointer or sprite

This block would report the color of the pixel at the coordinate of the mouse pointer or sprites.

dayssince2000universal

The only difference in this block, is that the block would show the same value for all users and will not be dependent on computer time settings, unlike the current days since 2000 block.

Variables:

timeofcloud varusernameofcloud var

These blocks could be used to check the last time when the cloud var was updated to the server, and by which user.

Control:

break

This block can be used to break out of a loop. Unlike the stop this script block, it won't stop the entire script, only the loop in which it is contained.

continue

This block can be used to skip an iteration of a loop.

More Blocks:

customreporterinputcustomreporterinput

These blocks would be very helpful to all users. It would be amazing to see these blocks on scratch. They are basically custom blocks which return values.

returnreturn

These are the blocks that can be used inside the definition of the custom block to stop and return a value.

Lists:

It would be interesting to see a concept of 2d lists but I guess it would be kind of hard to add it in a way, that it will still be simple for new scratchers to understand. So, I am not sure about how this would work, but it would be interesting to see it.


Anyway these are my block ideas for scratch 3.0, and I am interested to know what you think about these. If you have any other ideas or suggestions please tell me in the comments below. Also, thanks to griffpatch and TheLogFather for two of the block ideas.

Last edited by Spidertest (March 14, 2018 16:22:43)

Inkulumo
Scratcher
500+ posts

New Block Ideas for Scratch 3.0

Support for all pen and sound blocks, pause scripts will be a lifesaver for everyone making a music player, and pen fill will be a pretty nice feature.
chexbox
Scratcher
100+ posts

New Block Ideas for Scratch 3.0

2d lists - Arrays! I support all above blocks.
Sheep_maker
Scratcher
1000+ posts

New Block Ideas for Scratch 3.0

Please suggest each set of blocks in their own topics. Also, make sure your suggestions haven't been suggested and/or rejected already.

Duplicates
set width/height to _ % - duplicate
play sound _ from time _ duplicate
pen up and fill - duplicate
write _ - duplicate
color at _ - duplicate
break, continue - duplicate
custom reporters/booleans - duplicate
2d lists - duplicate, first class lists
hellounicorns2
Scratcher
1000+ posts

New Block Ideas for Scratch 3.0

Support for all of them as they would make scripting easier, however many of them are duplicates. Also, when doing scratchblocks you can give them colour by doing this:
[scratchblocks]Block name :: Block group/hex code of colour of script[/scratchblocks]
Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

hellounicorns2 wrote:

Support for all of them as they would make scripting easier, however many of them are duplicates. Also, when doing scratchblocks you can give them colour by doing this:
[scratchblocks]Block name :: Block group/hex code of colour of script[/scratchblocks]
Thanks for telling me, I changed the colors.
Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

Sheep_maker wrote:

Please suggest each set of blocks in their own topics. Also, make sure your suggestions haven't been suggested and/or rejected already.

Duplicates
set width/height to _ % - duplicate
play sound _ from time _ duplicate
pen up and fill - duplicate
write _ - duplicate
color at _ - duplicate
break, continue - duplicate
custom reporters/booleans - duplicate
2d lists - duplicate, first class lists
Sorry, I have not seen any of those topics, because I have never checked the suggestions topic before. But thanks for telling me.
furrypig
Scratcher
100+ posts

New Block Ideas for Scratch 3.0

Added some notes to your post:

Spidertest wrote:

So, scratch 3.0 looks great! However, I would like to see some new blocks, so I made a list of some of my ideas for blocks. I feel like some of these blocks could help a lot of people, and at the same time it would be simple for new scratchers to understand.

Looks:

setwidthto% these 2 used to be in scratch, but now they're not... If only they still were :(setheightto%

These blocks could allow users to stretch their sprites both horizontally and vertically

Sound:

playsoundfromtime

This block, can be used to start a sound from a specific time. With this block, it would also be possible to make a script to pause sounds.

Pen:

stamplist I'm not exactly sure what you mean by stamping a list.

This block would be very useful for a lot of users. An image can be stored as a list of pixel colors, and then the list can be stamped.

penupandfill

This block would fill the last shape drawn with pen.

writetext can't you use pen, clone, stamp, and sprite text engines?

This block would draw the text at the current position of the sprite.

settextfonttosettextsizetowidthoftext

These blocks could allow users to specify their font and the text size. The last block would report the length of pixels that the text would take up at the current size and font.

Sensing:

coloratmouse pointer maybe not this, maybe color at a coordinate point.

This block would report the color of the pixel at the coordinate of the mouse pointer or sprites.

millisecondssince2000 can it really be affected by computer settings? I thought it was always in GMT... that's why I use it to convert timezones :P Also, why should it be milliseconds instead of days? Updating days since 2000 to not be affected by computer settings would work.

This is just an idea, but it would be nice to have a block that shows the same time everywhere, unlike the days since 2000 block or the current time block, since those can be changed based on computer settings.

Variables:

timeofcloud varusernameofcloud var

These blocks could be used to check the last time when the cloud var was updated to the server, and by which user.

Control:

break

This block can be used to break out of a loop. Unlike the stop this script block, it won't stop the entire script, only the loop in which it is contained.

continue

This block can be used to skip an iteration of a loop.

More Blocks:

customreporterinputcustomreporterinput

These blocks would be very helpful to all users. It would be amazing to see these blocks on scratch. They are basically custom blocks which return values.

returnreturn

These are the blocks that can be used inside the definition of the custom block to stop and return a value.

Lists:

It would be interesting to see a concept of 2d lists but I guess it would be kind of hard to add it in a way, that it will still be simple for new scratchers to understand. So, I am not sure about how this would work, but it would be interesting to see it.


Anyway these are my block ideas for scratch 3.0, and I am interested to know what you think about these. If you have any other ideas or suggestions please tell me in the comments below. Also, thanks to griffpatch and TheLogFather for two of the block ideas.
Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

furrypig wrote:

Added some notes to your post:

Spidertest wrote:

So, scratch 3.0 looks great! However, I would like to see some new blocks, so I made a list of some of my ideas for blocks. I feel like some of these blocks could help a lot of people, and at the same time it would be simple for new scratchers to understand.

Looks:

setwidthto% these 2 used to be in scratch, but now they're not... If only they still were :(setheightto%

These blocks could allow users to stretch their sprites both horizontally and vertically

Sound:

playsoundfromtime

This block, can be used to start a sound from a specific time. With this block, it would also be possible to make a script to pause sounds.

Pen:

stamplist I'm not exactly sure what you mean by stamping a list.

This block would be very useful for a lot of users. An image can be stored as a list of pixel colors, and then the list can be stamped.

penupandfill

This block would fill the last shape drawn with pen.

writetext can't you use pen, clone, stamp, and sprite text engines?

This block would draw the text at the current position of the sprite.

settextfonttosettextsizetowidthoftext

These blocks could allow users to specify their font and the text size. The last block would report the length of pixels that the text would take up at the current size and font.

Sensing:

coloratmouse pointer maybe not this, maybe color at a coordinate point.

This block would report the color of the pixel at the coordinate of the mouse pointer or sprites.

millisecondssince2000 can it really be affected by computer settings? I thought it was always in GMT... that's why I use it to convert timezones :P Also, why should it be milliseconds instead of days? Updating days since 2000 to not be affected by computer settings would work.

This is just an idea, but it would be nice to have a block that shows the same time everywhere, unlike the days since 2000 block or the current time block, since those can be changed based on computer settings.

Variables:

timeofcloud varusernameofcloud var

These blocks could be used to check the last time when the cloud var was updated to the server, and by which user.

Control:

break

This block can be used to break out of a loop. Unlike the stop this script block, it won't stop the entire script, only the loop in which it is contained.

continue

This block can be used to skip an iteration of a loop.

More Blocks:

customreporterinputcustomreporterinput

These blocks would be very helpful to all users. It would be amazing to see these blocks on scratch. They are basically custom blocks which return values.

returnreturn

These are the blocks that can be used inside the definition of the custom block to stop and return a value.

Lists:

It would be interesting to see a concept of 2d lists but I guess it would be kind of hard to add it in a way, that it will still be simple for new scratchers to understand. So, I am not sure about how this would work, but it would be interesting to see it.


Anyway these are my block ideas for scratch 3.0, and I am interested to know what you think about these. If you have any other ideas or suggestions please tell me in the comments below. Also, thanks to griffpatch and TheLogFather for two of the block ideas.
1.) Stamping a list is basically storing and drawing images using pen. For example take a look at this project: link It renders an image by storing a list of colors, and using pen to draw the color at each pixel. If scratch had a stamp list block, then those type of projects could render the image from the list immediately.

2.) Having a built in block for pen text engines, would be a lot faster than making pen text engines. Especially when you want high quality vector fonts or a lot of text, pen text engines
can lag a lot if your program already uses a lot of pen. Also, it would be easier to use these blocks, rather than making or importing pen text engines every time.

3.) Color at a coordinate would be better, but it is the same as setting a sprite's position to the coordinate, and checking for color at sprite. I thought this might be easier for new scratchers to understand, but either block would be alright.

4.) Yeah I don't really mind updating days since 2000. I just changed it to milliseconds, because most programming languages use milliseconds, but days is also okay.
Sheep_maker
Scratcher
1000+ posts

New Block Ideas for Scratch 3.0

If you need to use the milliseconds since 2000 block right now, you can just do:
dayssince2000*86400000
I don't think it's universal for everyone; the time is still based off your computer with your computer's time zone is subtracted, so it can still be manipulated.
Botcho_Otkho
Scratcher
1000+ posts

New Block Ideas for Scratch 3.0

Spidertest wrote:

Looks:

setwidthto%setheightto%

These existed,but now they don't.

Sound:

playsoundfromtime

Dupe.
Pen:

stamplist

What does this would do?

penupandfill

(I think you saw this from Griffpatch) Support,this would help when making paint projects.

writetext

No support,just use costumes. And if you have to write a lot of text,use a pen text engine.

settextfonttosettextsizetowidthoftext

Same.

Sensing:

coloratmouse pointer

I think “color at x () y ()” would be better.

millisecondssince2000

I think that the “days since 2000” is fine by its own.
Variables:

timeofcloud varusernameofcloud var

Support,this would be useful when making scoreboards and multiplayer things.

Control:

break

Support. This is in Blockly too and would be helpful instead of stopping all the scripts.

continue

Same for before.

More Blocks:

customreporterinputcustomreporterinput

Dupe.

returnreturn

Same.

Lists:

What do you mean by 2D lists?
Wow these are lots of blocks. Please,next time use one block per topic. (I added support and no-support in the topic)

Last edited by Botcho_Otkho (March 14, 2018 14:39:15)

Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

Sheep_maker wrote:

If you need to use the milliseconds since 2000 block right now, you can just do:
dayssince2000*86400000
I don't think it's universal for everyone; the time is still based off your computer with your computer's time zone is subtracted, so it can still be manipulated.
Yes I know you can find the milliseconds that way, and I know it's not universal, that is why I suggested the block, to make it universal for everyone. Maybe I should make that more clear.

Edit: I changed the block, and its definition. It should be easier to understand now.

Last edited by Spidertest (March 14, 2018 16:23:45)

Spidertest
Scratcher
47 posts

New Block Ideas for Scratch 3.0

Botcho_Otkho wrote:

Spidertest wrote:

Looks:

setwidthto%setheightto%

These existed,but now they don't.

Sound:

playsoundfromtime

Dupe.
Pen:

stamplist

What does this would do?

penupandfill

(I think you saw this from Griffpatch) Support,this would help when making paint projects.

writetext

No support,just use costumes. And if you have to write a lot of text,use a pen text engine.

settextfonttosettextsizetowidthoftext

Same.

Sensing:

coloratmouse pointer

I think “color at x () y ()” would be better.

millisecondssince2000

I think that the “days since 2000” is fine by its own.
Variables:

timeofcloud varusernameofcloud var

Support,this would be useful when making scoreboards and multiplayer things.

Control:

break

Support. This is in Blockly too and would be helpful instead of stopping all the scripts.

continue

Same for before.

More Blocks:

customreporterinputcustomreporterinput

Dupe.

returnreturn

Same.

Lists:

What do you mean by 2D lists?
Wow these are lots of blocks. Please,next time use one block per topic. (I added support and no-support in the topic)

For the stamp list block and the color at x y block, read my reply above. About the days since 2000, it is not universal time. It means that it is not the same for everyone. Also, these are all my suggestions for scratch *3.0* so I think it is better that it all lies in one topic. And for the pen text engine read my reply above again. In a lot of user's projects including mine, the speed of scripts are very important especially for 3d projects which use a lot of pen. So, pen text engines may slow it down.

Edit: I improved some of the definitions, it should be more clear now. Also 2d lists are basically lists within lists, just like multi-dimensional arrays in other programming languages. They have both rows and columns.

Last edited by Spidertest (March 14, 2018 16:28:48)

-ShadowOfTheFuture-
Scratcher
1000+ posts

New Block Ideas for Scratch 3.0

Support for all. I can see where all of these would come in handy, especially arrays, custom reporters, pen up and fill, and break/continue.

Also for future reference, it's usually better to make separate topics for each of your suggestions instead of lumping them all into one huge topic. Please also check for duplicates.

Last edited by -ShadowOfTheFuture- (March 15, 2018 00:16:30)

Paddle2See
Scratch Team
1000+ posts

New Block Ideas for Scratch 3.0

Please use a separate topic for each new block idea so that the conversation doesn't get confused and each idea can be given the attention it deserves.

Before making new topics, please check the list of rejected topics and the list of previously suggested topics. Add to an existing topic, if there is one. Thanks!

Powered by DjangoBB