Using Looks Blocks in Scratch 2.0

This chapter teaches how to use Scratch 2.0's Looks block palette to communicate with your player both by using speech and thought bubbles. You'll also learn how to ask the player questions, get his or her feedback, and act accordingly on that feedback.

The main theme for this hour is that of involving your user in your Scratch project. I’ve always enjoyed video games of the first-person shooter (FPS) variety; however, I have remarkably low patience for long, drawn-out cut scenes that have no player interaction. I just want to get to the good stuff and to start playing the darned game!

Likewise, you should always keep your player in mind as you develop your Scratch projects. Believe me, they don’t want to sit there twiddling their thumbs while you present all of your nifty animations. Instead, they want to control the behavior and perhaps the outcome of the project—and you can make that happen.

The Looks block palette in Scratch 2.0 includes lots of goodies that put the power and control into your players’ hands. In this hour, you learn how to communicate with your player both by using speech and thought bubbles. You also learn how to ask the player questions, get his or her feedback, and act accordingly on that feedback.

By the end of this hour, you’ll have the ability to grow, shrink, fade, or otherwise modify your sprites in novel and effective ways. Let’s get to work.

Getting to Know the Looks Blocks

You know the drill by now: Fire up a new, blank project, select the Cat sprite, and click the Looks tab from the Scripts palette. Next, study Table 5.1 to familiarize yourself with the purple Looks blocks.

TABLE 5.1 Scratch Looks Blocks

Block Image

Block Type

Function

Stack

Makes a time-limited speech balloon appear above the selected sprite

Stack

Makes a persistent speech balloon appear above the selected sprite

Stack

Makes a time-limited thought balloon appear above the selected sprite

Stack

Makes a persistent thought balloon appear above the selected sprite

Stack

Displays the sprite immediately

Stack

Hides the sprite immediately

Stack

Changes the sprite’s costume to another one

Stack

Transitions the sprite from the current costume to the next one in the sprite’s costume list

Stack

Changes the Stage backdrop to a particular one

Stack

Changes the current value of a particular sprite’s graphical effect by a percentage; the effects are color, fisheye, whirl, pixelate, mosaic, brightness, and ghost

Stack

Sets the sprite’s effect to a percentage

Stack

Restores all of the sprite’s graphical effects to their default zero value

Stack

Changes the sprite’s default size (100) to a larger or smaller value

Stack

Sets a sprite’s size to a given magnification level

Stack

Brings the sprite to the top layer of the Stage “stack”

Stack

Moves the sprite back one layer on the Stage

Reporter

References the sprite’s current costume ID number

Reporter

References the current backdrop’s Name property

Reporter

References the sprite’s current size

Make sure that you have the Scratch Cat sprite selected on Stage and spend some time double-clicking each of the Looks blocks. You’ll observe that you can try out that block’s functionality without having to compose an actual script.

For instance, double-click the block. Now change the “Hello!” text to something else and test it out again.

This “click and try it” procedure is especially fun with the graphical effects stack blocks. Have fun, friend—that is largely what computer programming is all about!

By way of review, recall that stack blocks have a notch on top and a bump on bottom, just like a jigsaw puzzle piece. This is meant to indicate that you can easily stack these blocks together, one after the other, to chain actions and trigger events.

Reporter blocks are shaped like flattened-out ovals and hold values. You use reporter blocks by dropping them into a space within another block.

Boolean blocks (shaped like flattened-out hexagons) are a special type of reporter block. Whereas reporter blocks can hold alphanumeric data, Boolean blocks can contain only True or False values. You can insert Boolean blocks into the appropriately shaped holes in other Boolean blocks.

Hopefully, you are beginning to see the beauty and logic in how Scratch uses color-coded blocks to help you think like a programmer without getting bungled up in arcane syntax.

NOTE

Imitation Is the Sincerest Form of Flattery

You should know that Scratch is no longer the only game in town (pun most certainly intended) with regard to block-based, learning programming environments. Google released Blockly (http://cbt.gg/1969Kus) as a web-based, graphical programming editor whose color-coded blocks look and behave suspiciously like those in Scratch.

As you can imagine, some members of the Scratch community have mixed feelings about Google’s “appropriation” of Scratch’s main design and usage paradigms. On the other hand, competition between software vendors can often lead the way to increased innovation. For a nice comparison among most of today’s graphical and/or block-based programming learning environments, check out Alfred Thompson’s Computer Science Teacher blog at http://cbt.gg/1969T10.

For the first project example in this hour, let’s play around with a sprite’s appearance. To set the foundation for this exercise, do the following in the Scratch Editor:

Rename the Scratch Cat to Cat.

Import the Stage backdrop named route66 and make it the active backdrop.

Turn on the and reporter blocks to make them appear as Stage monitors. To do this, simply enable the check box to the immediate left of each reporter block in the Looks block palette. You can see what this looks like in Figure 5.1.

FIGURE 5.1 Stage monitors make Scratch reporter data visible on the Stage. This is extraordinarily useful when you debug your project code or when you want to display information (such as a game score) to the user.

Try It Yourself: Lookin’ Good!

In this Try It Yourself exercise, you become familiar with how you can dynamically alter the appearance of a sprite by using Looks blocks. You start by having the Cat “say” something to the player, and then you make the sprite do a bunch of contortions, including growing, recoloring, warping, spinning, and then fading out.

The completed solution file is named Hour05a.sb2.

Complete the following steps using Figure 5.2 as a guide, which shows you the code in context:

Bring out a Green Flag block and ignore the code section labeled A in Figure 5.2 for now. Note the say and think blocks; the difference between these is the appearance of the bubble that appears by your sprite. For the purposes of this exercise, you want the Cat to say “Watch this!” for 2 seconds (see the code section labeled B in the figure).

After a 1-second pause, switch the Cat’s costume (see the code section labeled C in the figure). Remember that the wait blocks are found in the Control palette.

Sprites start out at a size value of 100. Thus, if you bring out a block and use a value of 150 (see the code section labeled D in the figure), the sprite will grow by 150 percent. In other words, the sprite’s size will go from 100 to 250.

Change the sprite’s color effect by a factor of 50 (see the code section labeled E in the figure). A sprite’s default color effect is 0, so any value you add or subtract alters the sprite’s shade. A single sprite costume can take on 200 different color schemes by using the block. Thus, if you set the change color effect block to 200, you’ll see no difference in the sprite’s color.

Take a moment to just play around with other effects (see the code section labeled F in the figure). The fisheye effect is pretty cool; the higher you set the value about the default value of 0, the more warping you see in the sprite.

Spin the sprite in a 360-degree (full) rotation (see the code section labeled G in the figure). There are probably several ways in which you could accomplish this goal. For my money, repeating a 15-degree turn 24 times (perform the arithmetic; you’ll find that 15 multiplied by 24 equals 360) gets the job done efficiently enough.

Instead of having the Cat simply disappear with a block, add some pizzazz to the project (see the code section labeled H in the figure). The ghost effect is excellent if you want to fade in or fade out a sprite. Here, increase the sprite’s ghost (transparency) effect by 10, 10 times. In Scratch 2.0, a costume can have 100 different transparency levels. If you run a +10 ghost level 10 times, then by the end of the loop the sprite is fully transparent.

You’ll get into adding and managing audio in your Scratch projects in the next hour. For now, simply play the default meow sound to signify the conclusion of the project (see the code section labeled I in the figure).

Add a hide block just for grins (see the code section labeled J in the figure). In programming, being explicit with your code is generally superior to being implicit.

Now return to the code section labeled A in Figure 5.2. This is discussed last so the blocks used make sense to you. If you try to rerun the project without this “cleanup” code, the project will look a mess and be pretty much unusabvle.

It can’t be stressed enough how important it is that you put code at the very front of your Scratch project that resets the environment. Here, you are resetting the sprite’s ghost effect, Stage position, costume, size, directionality, and visibility. Strictly speaking, the set ghost effect block isn’t needed in addition to the clear graphic effects block, but it’s added here for completeness.