Discuss Scratch

jmoots
New Scratcher
1 post

Sharing blocks across sprites

Did anymore come of this? My son has been having a great time using scratch, so I was going to show him how much better it would be to call the same routine from more than one sprite and was astonished that you cannot do so. I think I share the opinion that he will unfortunately have to move to some other language. Is it at least a feature soon to be added?
PrincessPanda_test_
Scratcher
1000+ posts

Sharing blocks across sprites

This topic has been necroposted a million times.
gdpr533f604550b2f20900645890
Scratcher
1000+ posts

Sharing blocks across sprites

PrincessPanda_test_ wrote:

This topic has been necroposted a million times.
I would say the posts are quite relevant.
iotlabs
New Scratcher
1 post

Sharing blocks across sprites

truly disturbing that the preferred model is cut and paste.
TheLogFather
Scratcher
1000+ posts

Sharing blocks across sprites

jmoots wrote:

…I was going to show him how much better it would be to call the same routine from more than one sprite and was astonished that you cannot do so… Is it at least a feature soon to be added?

iotlabs wrote:

truly disturbing that the preferred model is cut and paste.
Having ‘global custom blocks’ would be very useful, of course. But it's really not that straightforward once you actually consider details of implementation…

There's a discussion of some of the issues, and possibilities, here: https://github.com/LLK/scratch-flash/issues/782

Last edited by TheLogFather (Sept. 9, 2015 23:41:18)

masterneil
Scratcher
31 posts

Sharing blocks across sprites

You can change dye blocks to dye blocks you have to hold shift while you press edit on the top of the screen. You can also get different blocks that you can't get normally.
DrKat123
Scratcher
1000+ posts

Sharing blocks across sprites

jmoots wrote:

Did anymore come of this? My son has been having a great time using scratch, so I was going to show him how much better it would be to call the same routine from more than one sprite and was astonished that you cannot do so. I think I share the opinion that he will unfortunately have to move to some other language. Is it at least a feature soon to be added?
Please don't necropost.
EDIT: what do you mean by “call the same routine” ? scripting routine ? i don't get it. and scratch has routine updates (now 2.440)
if you want to change language, try HTML5, CSS3 and JS (but at least try HTML first) or BYOB (build your own blocks), similar to scratch.

Last edited by DrKat123 (Oct. 9, 2015 06:52:30)

DrKat123
Scratcher
1000+ posts

Sharing blocks across sprites

PrincessPanda_test_ wrote:

This topic has been necroposted a million times.
i agree.
Gaminations
Scratcher
1 post

Sharing blocks across sprites

learnegy wrote:

Is it possible to share a block across multiple sprites? If not, this would be great for code reuse.
Yes, it is Possible to Share a script between multiple Sprites. Simply Drag the script into the backpack (If the Script is a Custom Block it will not transfer). The other easy and simple way of transferring a script is dragging the script to another sprite in your Sprite Box. If you are transferring scripts from one studio to the next simply save the sprite to your local files (May save as sprite1.sprite2) then input the sprite into your studio and you have the scripts, just take out what you don't need! -Gaminations :rolleyes:
Hope this helped!
SimpleScratch
Scratcher
500+ posts

Sharing blocks across sprites

Having carried on using Scratch 1.4 (and a bit of BYOB) with my primary age pupils - I decided I really needed to give Scratch 2 a proper test and use it on a Year 6 class (age 10-11) and show them the cloning and making own block options.

Cloning is great - very nice - (1000000 times better than BYOB!) - pupils got the concept and loved it as easy way of firing balls/cheezy puffs/babies etc across the screen

I then went on to show how make your own block could be used to make blocks like draw square and draw polygon.

And (this is my point) I went to show how the same custom block could be used across all sprites and found……..

….that I couldn't!!!!!

(BYOB lets you do this and I just assumed that Scratch 2 would as well!)

I've found this thread and posted here in the hope that someone from MIT will re-think this issue and at a minimum give us the option to make our custom blocks global or local just like variables.

I've been teaching with Scratch since the very old days of 2007 so I'm not making this request lightly

regards

Simon

footsocktoe
Scratcher
1000+ posts

Sharing blocks across sprites

sfishlock wrote:

Having seen first hand the havoc caused by copy and paste programmers out there in the wild, I'm quite shocked that Scratch is teaching kids such terrible programming habits! From my experience people retain these programming habits there entire lives, it encourages lazy planning and ad-hoc incremental development, and people who can't work well in teams.

I recently worked on a Scratch project that required 50 copies of a method block using the backpack, even my 7 year old was telling me it was a bad idea, but I had to explain that its just the way that Scratch works. The thing is that by the time they start using blocks, they're starting to think in more advanced programming concepts anyway and its time to start teaching them proper planning and reuse. Otherwise the code becomes overly complex and too difficult to manage. Sure you could argue that they should graduate to Python, but it is just one of those problems with learning to code before your fingers can type …

Understand the name space issue, but there has to be a way around this. Why not number blocks like sprites for additional clarification ? You could access them from a list like costumes or sounds and reorder them based on how frequently they would get used. Or simply not allowing similar names to be used. I mean ultimately it should be flexible enough so that you can create custom reusable blocks that you could “load in” to a project or share with other users, after all that is the way real programmers use source control to work in teams.

Personally I think its much more important that kids understand such concepts rather than to let them run wild without fostering a philosophy of reusability …

Interesting idea, but a lot of the limitations of Scratch are because it is a real time browser based programming system.
And another limitation is that 8-year-olds have to be able to use it.

So the restrictions are not always arbitrary but necessary.

Last edited by footsocktoe (March 3, 2016 16:17:46)

footsocktoe
Scratcher
1000+ posts

Sharing blocks across sprites

SimpleScratch wrote:

Having carried on using Scratch 1.4 (and a bit of BYOB) with my primary age pupils - I decided I really needed to give Scratch 2 a proper test and use it on a Year 6 class (age 10-11) and show them the cloning and making own block options.

Cloning is great - very nice - (1000000 times better than BYOB!) - pupils got the concept and loved it as easy way of firing balls/cheezy puffs/babies etc across the screen

I then went on to show how make your own block could be used to make blocks like draw square and draw polygon.

And (this is my point) I went to show how the same custom block could be used across all sprites and found……..

….that I couldn't!!!!!

(BYOB lets you do this and I just assumed that Scratch 2 would as well!)

I've found this thread and posted here in the hope that someone from MIT will re-think this issue and at a minimum give us the option to make our custom blocks global or local just like variables.

I've been teaching with Scratch since the very old days of 2007 so I'm not making this request lightly

regards

Simon


Custom blocks can be used in multiple sprites. What you seem to want is that the script for that block only appears in one sprite. However, that would interfere with our very handy ability to download and save a sprite complete with all its scripts and then upload that sprite to a different project. I prefer the way it is now.
TheLogFather
Scratcher
1000+ posts

Sharing blocks across sprites

SimpleScratch wrote:

I've found this thread and posted here in the hope that someone from MIT will re-think this issue and at a minimum give us the option to make our custom blocks global or local just like variables.
There has never been an issue of “rethinking” whether or not to include global custom blocks. The Scratch Team are in support of the idea, and have been even before Scratch 2.0 was actually being developed.

The problem is entirely one of implementation. -They don't want to implement it in the way that, e.g., BYOB does.

Here's a quote directly from Natalie (ST member):
The Scratch editor design team discussed this extensively when planning for Scratch 2.0. We all agreed that global procedures would be great to have and an important concept, but also recognized the challenges of adding it in a seamless way.
It's well worth reading through the discussion about it here: https://github.com/LLK/scratch-flash/issues/782

Many of those who just come here and say “support” probably have little idea of the implementation issues that are involved. (EDIT: actually, I was a bit confused - I was mistakenly thinking this was the other major thread about this, which is where loads of people have posted support.)

I'm quite tempted to ask for this thread (and the other thread about this) to be closed, and instead create a replacement thread which asks for suggestions of just *how* to implement this feature into Scratch as it is now, since that is the only real question…

Last edited by TheLogFather (March 4, 2016 10:48:08)

Paddle2See
Scratch Team
1000+ posts

Sharing blocks across sprites

It looks like this is a duplicate topic of this one over here so I'll close it to keep the conversation all in one place.

Please use the existing topic in the link above.

Powered by DjangoBB