Discuss Scratch

c0der0928
Scratcher
100+ posts

Ring block

{move (1) steps} :: grey :: reporter
also add a run block for these ring blocks
c0der0928
Scratcher
100+ posts

Ring block

example
set [code v] to ({move (5) steps} :: grey :: reporter)
run (code) :: control //this would move 5 steps
c0der0928
Scratcher
100+ posts

Ring block

anyone here
Dragonmyflesh
Scratcher
500+ posts

Ring block

Why would you want to do this when you have normal code.
BigNate469
Scratcher
1000+ posts

Ring block

Dragonmyflesh wrote:

Why would you want to do this when you have normal code.
Because you can do
set [some blocks v] to ({move (10) steps} :: grey ring)
set [some blocks v] to (join (some blocks) [(insert some more blocks here)])
run (some blocks) :: control
Which is currently impossible to do, and unlike other places that can dynamically run code like this, it doesn't run into security issues.
Dragonmyflesh
Scratcher
500+ posts

Ring block

BigNate469 wrote:

Dragonmyflesh wrote:

Why would you want to do this when you have normal code.
Because you can do
set [some blocks v] to ({move (10) steps} :: grey ring)
set [some blocks v] to (join (some blocks) [(insert some more blocks here)])
run (some blocks) :: control
Which is currently impossible to do, and unlike other places that can dynamically run code like this, it doesn't run into security issues.
Just use messages.
BigNate469
Scratcher
1000+ posts

Ring block

Dragonmyflesh wrote:

BigNate469 wrote:

snip
Just use messages.
If you want to do that and be able to programmatically build any script, you need hundreds of messages (one for every block), not to mention it being slow (messages have fairly specific rules about when they execute in relation to when the screen is updated) and hard to use.

Meanwhile, with this, you can essentially just build a script all at once and execute it quickly.

It would also make compiling scripts to Scratch generated in a project possible.
TheCreatorOfUnTV
Scratcher
1000+ posts

Ring block

How do you add inputs?
235x
Scratcher
100+ posts

Ring block

TheCreatorOfUnTV wrote:

How do you add inputs?
Maybe by setting variables named after keyboard buttons to true/false based on if the button is being pressed. But it could probably be a bit slow.
Scratchedbyyou_forum
Scratcher
100+ posts

Ring block

The ring block and run code block is originally from Snap, for anyone that doesn't know.
cookieclickerer33
Scratcher
1000+ posts

Ring block

No support


As much as I LOVE snap, they’re different for a reason.
What this would allow you to do is no different than that of an if else statement

While I do see the value and potental of brining rings to scratch. They just seem entirely out of scope
randomguy3513
Scratcher
1000+ posts

Ring block

I think custom variable blocks (That was already suggested by the way) would be much better since they are easier
to understand. Ring blocks will lead to more confusion rather than being helpful for new scratchers.
I really like this suggestion but I think it will just cause too much confusion for it to be a good implementation.
bubgamer072
Scratcher
96 posts

Ring block

if yall want this just use Snap!
BigNate469
Scratcher
1000+ posts

Ring block

bubgamer072 wrote:

if yall want this just use Snap!
As has been mentioned in other topics, saying "just use [link to external program(s)" isn't a usually good workaround, because not everyone can always access them or wants to use them.

That said, considering Snap! is a project of a university, and as a result, isn't blocked much anywhere, and is now able to be run anywhere because it's no longer a Scratch 1.4 mod, it doesn't really have these issues.
han614698
Scratcher
1000+ posts

Ring block

based on this topic i see no reason why can't use this
define give me scratch
bubgamer072
Scratcher
96 posts

Ring block

han614698 wrote:

based on this topic i see no reason why can't use this
define give me scratch
trust me, rings are much much much much more than just custom blocks. for example:
when I receive [add block v]
ask [which block do you want to add?] and wait
if <(answer) = [move forwards]> then
set [script v] to (join (script) ({move (10) steps} :: grey ring))
else
...
end
and then, you can do something like this:
when I receive [go v]
run (script) :: control
to allow the user to create and run their own script.
Dragonmyflesh
Scratcher
500+ posts

Ring block

BigNate469 wrote:

Dragonmyflesh wrote:

BigNate469 wrote:

snip
Just use messages.
If you want to do that and be able to programmatically build any script, you need hundreds of messages (one for every block), not to mention it being slow (messages have fairly specific rules about when they execute in relation to when the screen is updated) and hard to use.

Meanwhile, with this, you can essentially just build a script all at once and execute it quickly.

It would also make compiling scripts to Scratch generated in a project possible.

If you can do this:

{move (1) steps} :: grey :: reporter

The you can do this:

when I receive [message v]
move (1) steps

It's not that hard.

Last edited by Dragonmyflesh (Nov. 21, 2024 16:00:30)

c0der0928
Scratcher
100+ posts

Ring block

no i mean i can just do the ring thing, then why is it in snap berkeley edu
c0der0928
Scratcher
100+ posts

Ring block

TheCreatorOfUnTV
How do you add inputs?
look
{move (#1 :: variables) steps} with inputs (#1 :: variables) :: grey :: reporter
mcsquaggle
Scratcher
500+ posts

Ring block

semi support, while this seems to make compiling projects easier and faster, and somewhat prevents clutter, i really just do not see a use case for this outside projects that need compiling and scratch inside of scratch projects. like would something like this work?
when I start as a clone
set [code to run v] to []
if <...::grey> then
set [code to run v] to ((...::grey stack)::extension)
else
set [code to run v] to ((...::grey stack)::extension)
end
run (code to run)::control

Powered by DjangoBB