Discuss Scratch

The_Cool_Test_Alt
Scratcher
100+ posts

Scratch Workaround Guide VII

Wait, it happens because the sound blocks are “motion-causing”, right? Well, we could just put the set volume in a run-without-screen-refresh block, right?

WHY MUST SOUND BLOCKS CAUSE ACTUAL WAITS?!?! WHY ARE THE SOUND BLOCKS SO MEAN TO US?!?!

Last edited by The_Cool_Test_Alt (Nov. 5, 2025 21:41:46)

CodeComet6161
Scratcher
1000+ posts

Scratch Workaround Guide VII

here's something that triggered me:
Visit the project! This is a simple context menu example which uses variables and a "when stage clikced" block (in the Stage) to detect clicking twice within a short time. Note that the Stage includes two example scripts, one which disables the context menu under certain backdrops and one which doesn't, so you'll have to choose the one which works for your project or remove one if you want to try it out.
Olivia_AM
Scratcher
100+ posts

Scratch Workaround Guide VII

Here is a better power block:
define (x)^(y)
if <(x)<(0)> then
set [result v] to (([e^ v] of ((y)*([ln v] of ((0)-(x))))::operators)*([cos v] of ((180)*(y)
else
set [result v] to ([e^ v] of ((y)*([ln v] of (x)))::operators

Last edited by Olivia_AM (Nov. 10, 2025 13:05:58)

The_Cool_Scratch_Guy
Scratcher
100+ posts

Scratch Workaround Guide VII

What's cos(y*180) for??
UserBlockedYou
Scratcher
52 posts

Scratch Workaround Guide VII

Cheezzychiknzzz wrote:

After reading the table of contents, I realized that there isn't a Workaround for the sounds category blocks, which is surprising since every other category has been covered. So I figured I would give my suggestion (note, this trick has been widely known & used. However I suggested it to make the list feel more complete and for people who do not know it) This is for the
pause sound:: sound
and
unpause sound:: sound
——————————————————————-
(I'l be setting u & p for the unpause and pause keys respectively but you can set the keys to anything you'd like or you can start the scripts with a broadcast or any other trigger)
You could just do
when [p v] key pressed
set volume to (0) %
and
when [u v] key pressed
set volume to (100) %
for the pause and unpause blocks respectively, but if you want the sound to start where it was stopped, you can do
when [p v] key pressed
set [pitch v] effect to ((-1) / (0))
set volume to (0) %
and
when [u v] key pressed
set [pitch v] effect to (100)
set volume to (100) %
The
((-1) / (0)) 
block gives you -Infinity and “pitch” doesn't just lower the pitch but the lowers the speed of the sound so when the earlier equation is used for the pitch, it makes the sound s u p e r s l o w and the set volume to (0) % block hides the slowed down sound and finally the latter script reverses the effect of the former script.
should be set pitch to 0 not 100
wallaceji
New Scratcher
7 posts

Scratch Workaround Guide VII

_nix wrote:


Scratch Workaround Guide Ⅶ
༺༻




If you’ve spent some time programming with Scratch, there is a pretty good chance that you’ve gone looking for a block which just doesn’t exist—some kind of action or utility that you can’t find in any of the existing blocks! The Scratch Team tries to keep the list of blocks minimal, so that it isn’t overwhelming or confusing for newer Scratchers (among several other reasons). That means we have to use the blocks we do have to come up with new behavior similar to the blocks we don’t have. That’s what a “workaround” is—using what you’ve got to make something new and useful!
Then you should be able to search for blocks.
AndPherbCodes
Scratcher
100+ posts

Scratch Workaround Guide VII

Has anyone created a project that has all block workarounds?

Powered by DjangoBB