Cheer (bird, win)

The win of the game cycles for birds: a little hop with the wings thrown up and flapping hard, the beak open in a happy cry, 1.2 seconds from start to finish, for a game to play the instant the bird wins.

A cartoon person and a dog with arms thrown up, mid-cheer, mouth open.

Use it in a cartoonOpen it in the block editorThe pack file (JSON)

What it is for

Cheer (bird, win) is the win of the nine game cycles, written for the bird set: the same short, 1.2-second burst as Cheer (win), but a hop with the wings thrown up rather than a spring with two fists pumping, a bird's own way of celebrating.

The principle it shows: anticipation and follow-through

A small hop (the legs bending 20 degrees, the wings swept back) primes the cheer before the wings ever go up, storing the same kind of energy a crouch does before a jump. After the main wing-throw, the move does not stop dead: the wings keep flapping for over half a second in diminishing beats before easing all the way back to standing, the energy spent gradually rather than cut off.

The program, line by line

settings: h = 540, leg = 0.05
when it starts
  show the side view
  look happy
  at the same time:
    — 1:
      glide left leg 20, right leg 20, left foot -20, right foot -20, left arm -30, right arm 30 over 0.14 s (out)
    — 2:
      set dx 0, dy 0
      for 0.14 s:
        dy follows (h*leg*(1 - cos(((0 + 20*sin((min(local/0.14, 1))*pi/2)))*pi/180)))
        dx follows (-h*leg*sin(((0 + 20*sin((min(local/0.14, 1))*pi/2)))*pi/180))
  set dx (-h*leg*sin((20)*pi/180)), dy (h*leg*(1 - cos((20)*pi/180)))
  at the same time:
    — 1:
      glide left leg 0, right leg 0, left foot 0, right foot 0, left arm -110, right arm 110 over 0.06 s (in)
    — 2:
      set dx 0, dy 0
      for 0.06 s:
        dy follows (h*leg*(1 - cos(((20 + -20*pow(min(local/0.06, 1), 2)))*pi/180)))
        dx follows (-h*leg*sin(((20 + -20*pow(min(local/0.06, 1), 2)))*pi/180))
  set dx (-h*leg*sin((0)*pi/180)), dy (h*leg*(1 - cos((0)*pi/180)))
  glide dy (-0.05*h), left arm -130, right arm 130, left leg 10, right leg 10, left foot 10, right foot 10, mouth 0.6, head 10 over 0.14 s (out)
  glide dy 0, left leg 0, right leg 0, left foot 0, right foot 0 over 0.12 s (in)
  for 0.54 s:
    sin wave on left arm · every 0.18 s · amp -26
    sin wave on right arm · every 0.18 s · amp 26
    sin wave on head · every 0.18 s · amp 6 · phase 1.5707963267948966
  glide left arm 0, right arm 0, mouth 0, head 0 over 0.2 s (smooth)

Written out in full, exactly as the engine prints them:

h*leg*(1 - cos(((0 + 20*sin((min(local/0.14, 1))*pi/2)))*pi/180))

-h*leg*sin(((0 + 20*sin((min(local/0.14, 1))*pi/2)))*pi/180)

-h*leg*sin((20)*pi/180)

h*leg*(1 - cos((20)*pi/180))

h*leg*(1 - cos(((20 + -20*pow(min(local/0.06, 1), 2)))*pi/180))

-h*leg*sin(((20 + -20*pow(min(local/0.06, 1), 2)))*pi/180)

-h*leg*sin((0)*pi/180)

h*leg*(1 - cos((0)*pi/180))

Try this

  1. Keep the wings flapping for a full second instead of 0.54. More flaps fit in before the cheer eases off, a longer celebration for a bigger win.

    In the program: for · s 0.54 → 1

  2. Open the beak all the way (mouth 1 instead of 0.6) during the hop. The cheer reads as a full cry instead of a happy chirp.

    In the program: ramp · to.mouth 0.6 → 1

How it differs from Flinch (bird, hurt) and Cheer (win)

Flinch (bird, hurt) is the opposite reaction on the same body, a recoil rather than a hop, and it is a third as long. Cheer (win) is the same idea for the upright set, two fists pumping rather than wings thrown up.

Works on

Worked out by the build: it plays the move in the engine on each body and checks what moves on screen. Nobody types this table.
BodyMoves?What moves
2 legs (a person)yeswhole body, turns, head, arms, legs
4 legs (a dog)yeswhole body, head, front legs, back legs, ears
no legs (the monster with no legs)yeswhole body, turns, arms

c4c:beh:cycle_win_bird · version 1.0.0 · c4c-free · by Jabbertoon