When () Key Pressed (block)

When () Key Pressed
2.0 When () Key Pressed.png
Category Event
Type Hat
The When () Key Pressed block is an Events block and a Hat block. Scripts placed underneath this block will activate when the specified key is pressed.

The keys that can be sensed with this block include the entire English alphabet ( a b c etc.), the number keys ( 0 1 2 etc.), the arrow keys ( ), and the space key. After an update, this block now includes an any option, which allows one to press any key to operate the block.

In the Experimental Viewer, the ↵ Enter key (or return key on Macs) could also be sensed.

It is possible to use "hack blocks" which allows you to edit and change the button that this block can detect.

The block will act similarly to typing text in a text box. There will be a delay between when the block first executes and the second time, but after that, there will be no delay until the key is released.

Example Uses

This block is used to get input from the player, for a variety of uses.

Some common uses include:

  • Controlling an object
when [space v] key pressed
broadcast [Fire! v]
repeat (5)
 change y by (5)
  • Typing on a word processor
when [a v] key pressed
switch costume to [a v]
stamp
change x by (20)
when [space v] key pressed
broadcast [Animation starts! v]
play sound [Intro v]
  • Moving around a map
when [up arrow v] key pressed
change y by (15)
Warning Note: Because of the built in delay, the <key [ v] pressed?> Boolean is often used for movement, as it will execute its script more rapidly and make movement smoother.

Workaround

Main article: List of Block Workarounds

This block can be partially replicated with the following code:

when flag clicked
forever
 if <key [wanted key v] pressed?> then
 . . .
end
Warning Note: This workaround is not exact, as the hat block will break off in the middle of a script, but the workaround will not. The built-in delay in the hat block (if you hold down the key, there will be a slight pause, followed by a shorter pause) is not inherent in the workaround. Also, the hat block does not require the green flag to be pressed.

A more precise workaround:

when gf clicked
forever 
if <key [key v] pressed?> then
broadcast [ready v]
when I receive [ready v]
. . .

How to Write it in the Forums or Wiki

when [space v] key pressed

See Also

  • This page was last modified on 5 July 2017, at 04:46.