(Fixed it up to standards)
m (redirected instead of deleting)
(27 intermediate revisions by 17 users not shown)
Line 1: Line 1:
'''Custom blocks''' allow for one to make his or her own programming [[blocks]]. Using custom blocks, large, similar scripts can be combined into one reusable block. In some other [[Programming Language|programming languages]], custom blocks are called "procedures", "functions", or "methods".
#REDIRECT [[My Blocks]]
[[File:Jump Block.png|thumb|A "jump" custom block.]][[File:Jump block with insert.png|thumb|A "jump" custom block with number input.]]
[[File:Scratch-2.0-factorial-script.png|thumb|Recursive factorial procedure {{-}} Scratch 2.0 alpha.]]
==Custom Blocks in Scratch==
Custom blocks are found in the "[[More Blocks]]" palette.<ref>http://blog.scratch.mit.edu/2012/02/scratch-20-project-page-and-project.html</ref> The palette starts off empty and just shows a "Make a Block" button (similar to the "Make a [[Variable]]/[[List]]" buttons in the [[Data Blocks|data]] palette). For each Define block (whether from the make a block button, or by dragging in from the [[backpack]] or another sprite), a [[() (Custom block)|custom block]] is shown in the palette. The custom block is only available to the sprite that has the Define block.<ref>{{Forum Archive|59483|page=4|p=719181}}</ref>
Custom blocks can only be [[Stack Block|stack blocks]], not [[Reporter Block|reporters]] or [[Boolean Block|booleans]] (though they may be added in the future).<ref>http://scratched.media.mit.edu/discussions/scratch-20/custom-block-types</ref> They support [[recursion]], so blocks can call themselves (This doesn't stop the current block executing, unlike [[broadcasts]]). This allows for things like [[Recursion and Fractals|creating fractals]] and [[Recursion#Recursion in Scratch 2.0|finding the factorial of a number]].
==Creating a Custom Block==
To create a custom block, open the "More Blocks" [[Block Categories|category]]  and press the "Make a Block" button. A new block menu will open, where you can name your custom block. By pressing "Options", you can add [[string]], number, and [[boolean]] [[inputs]]. You can also add more label text to the block, or make it [[Single Frame|run without screen refresh]]. After naming and adding arguments, a [[Define () (block)|Define]] block is created. A custom block's settings can later be changed by right-clicking on its Define block or the custom block itself and selecting "edit". You can define what your custom block does by snapping a script to its Define block, as shown below.
spin right (360) degrees
define spin right (amount) degrees
repeat (amount)
turn right (1) degrees
==Procedures in BYOB/Snap!==
[[Snap!]], previously called BYOB (Build Your Own Blocks), is a [[Scratch Modification|Scratch modification]] that allows procedures. Snap!'s procedures allow all 3 types of blocks, with arguments, and also recursion.
==See Also==
*[[() (Custom block)]]
*[[Define () (block)|Define ()]]
*[[Squeak Tutorial#Methods|Procedures in Squeak]]
[[Category:Scratch Program]]
[[Category:Scratch 2.0]]
[[Category:More Blocks]]

Latest revision as of 17:25, 6 January 2019

Redirect to: