Tap Fly — one tap, one pipe

A game with a single control. Tap and the bird bounces up; do nothing and it falls. Fly through the gap between pipes for a point; touch a pipe or the ground and the run is over. It is the genre often called «flappy-style», and this page runs those rules in your browser. The gap starts at 130px and narrows by 2px per point down to 100px; the scroll starts at 150px per second and gains 2px per point up to 210. A run lasts about ten seconds, so the next one opens the moment you crash, and the crash screen tells you how far you were from your best. The best score is stored only in this browser — no download, no sign-up.

How to use

  1. Tap the board or press Space / ↑ to begin. The first tap is the first flap, so there is no separate start button.
  2. Every tap bounces the bird up; let go and it falls. Tap short and often to hold a height.
  3. Fly through the gap between the pipes. Clearing a pipe's right edge scores one point.
  4. Touch a pipe or the ground and the run ends. Once the result appears, tap again for a new run.

The gap starts at 130px and narrows by 2px per point, stopping at 100px. From 15 points on, every gap is the narrowest.

Scroll speed starts at 150px per second and gains 2px per second per point, stopping at 210. From 30 points on, it is always the fastest.

A tap «sets» the speed rather than adding to it. Mashing gives you the height of a single tap, so you can never rocket into the ceiling.

Touching the ceiling does not kill you — the bird is simply held there. Only pipes and the ground end a run.

Taps are ignored for 0.4 seconds after a crash. Your finger is usually mid-tap when you die, and that tap opening a new run would hide the result.

The best score is saved only in this browser (localStorage) and never sent to a server.

In depth

Rules — one control, two ways to die

The board is 320×480 and the bird sits at x=80, moving only up and down. Pipes scroll from right to left, and passing a pipe's right edge scores a point. The only two ways to die are touching a pipe and touching the ground line at 440px.

This genre is usually called «flappy-style». This page implements those rules — tap to bounce, pass the gap, touch and it's over — as its own separate implementation, unrelated to any original.

The tension sits between your current height and the height of the next gap. After a tap the bird rises for about 0.28 seconds and then falls again, so a low gap means waiting and a high gap means tapping early. Good players are separated from the rest less by reaction time than by knowing when not to tap.

Gravity and the tap — why it «sets» rather than adds

Gravity pulls at 1500px/s² and a tap sets the vertical speed to −420px/s. The bird therefore rises for 0.28 seconds (420 ÷ 1500) and peaks about 59px above the tap point (420² ÷ (2 × 1500)).

Setting instead of adding is about mashing. If every tap added speed, three quick taps would send the bird into the ceiling and the long fall afterwards would miss the next gap. With setting, any number of taps gives the height of the last one, so the interval between taps becomes your height control — and that is the whole skill.

Fall speed caps at 700px per second. Without a cap a bird that has fallen for a while could cross a pipe in a single tick (1/120 s) — a hole in the arithmetic, not a skill.

The difficulty curve — gap 130 to 100, speed 150 to 210

The gap starts at 130px. The bird is 24px across, leaving 53px of room above and below, and the gap loses 2px per point until it reaches 100px at 15 points. At 100px the margin is 38px each way — less than a single tap's 59px rise — so «one tap per gap» stops working.

Speed starts at 150px per second and gains 2px per second per point, capping at 210 at 30 points. Pipes are 190px apart, so at first a pipe passes every 1.27 seconds and from 30 points every 0.90 seconds. That 0.9 seconds has to hold one full fall–tap–rise–fall cycle.

Both have caps because skill has a ceiling. Tighten forever and some score becomes physically impossible at human reaction time (about 0.2 s), and a loss there is biology rather than judgement. Stopping at 15 and 30 turns everything after into «how long can you hold this difficulty», which is what a best score should measure.

How to last — low, late, short

The most important habit is passing through the lower half of the gap. Pass high and, when the next gap is low, you spend a long time falling with nothing to do; pass low and a tap can always lift you.

Tap late and short. If you tap when you notice you have dropped too far, it is already too late — the bird carries a few more pixels down before it rises. A steady light tap just as the fall begins is the most stable rhythm.

Look at the next gap, not this one. When you pass a pipe, the next one is already on screen (190px spacing on a 320px board). Setting your rhythm to the next gap's height is what «playing ahead» means here.

Read the «short of your best» line on the crash screen. When you keep dying near your record, the skill is already there — what is left is stopping tension from speeding your hand up.

About this implementation

Physics runs in fixed ticks of 1/120 s. Using raw frame time would integrate gravity differently on a 60Hz and a 120Hz phone, so the same tap would give different heights and a best score would mean different things on different devices. Frames are drawn as they come, but the simulation is sliced into ticks.

If a frame takes seconds because the tab was in the background, the lost time is dropped rather than replayed. Replaying it would teleport the bird into a pipe before you saw anything.

Collision treats the bird as a circle of radius 12px. Box-versus-box would catch the bird's rounded «empty corner» on a pipe edge, and most complaints about this genre come from exactly that.

Gap positions are drawn uniformly with a 40px margin from the top and the ground. A gap glued to the ceiling cannot be reached by tapping, and one glued to the ground cannot be stopped at inside the fall cap.

The best score stays in this browser. Nothing is sent to a server, so there is no global leaderboard, and clearing site data clears the record.

FAQ

What are the rules of Tap Fly?

The bird keeps drifting right; you only choose its height. Tap to bounce up, do nothing to fall. A point for every pipe gap you pass, and the run ends when you touch a pipe or the ground. That is the whole rulebook.

Why does it get harder?

Two things tighten together as you score. The gap narrows 2px per point down to 100px, and the scroll speeds up 2px per second per point up to 210. The gap bottoms out at 15 points and the speed caps at 30, so from there the difficulty is fixed and it becomes pure endurance.

Does mashing send me higher?

No. A tap sets the vertical speed to a fixed value (−420px/s), so however many times you tap you only get the height of the last one. If taps stacked, mashing would be a one-way trip to the ceiling and there would be nothing to learn.

Do I die at the ceiling?

No. At the top edge the bird is held and its speed drops to zero, then it starts falling from there, so you have time to drop into the next gap. Only pipes and the ground end a run.

Does it work on a phone?

Yes. Tap anywhere on the board. One hand, one finger, no download or sign-up, and it keeps working offline.

Method and sources

What this tool bases its numbers on, and how far those numbers go.

What this tool is
A browser implementation of the rules of this genre. It is not the original or any trademark's official version, and the gravity, gap and speed values are this page's own.
Formula
Board 320×480, bird at x=80 with radius 12. Gravity 1500px/s²; a tap sets vertical speed to −420px/s; falling caps at 700px/s. Pipe width 52, spacing 190, gap 130 − 2×score (minimum 100), speed 150 + 2×score (maximum 210). Passing a pipe's right edge scores 1; touching a pipe or the ground (y=440) ends the run.
Worked example
At 10 points the gap is 130 − 2 × 10 = 110px and the speed is 150 + 2 × 10 = 170px per second, so covering the 190px pipe spacing takes 190 ÷ 170 ≈ 1.12 seconds.
Limitations
  • Gap positions are random, so luck is involved. A low gap right after a high one is a harder run at the same skill.
  • The best score is stored only in this browser. Clear site data or open another device and you start from zero.
  • Gap positions come from Math.random. Seeds cannot be shared, so the same run can never be replayed.
  • Touch latency varies by device. Tapping at the same instant, the bird may react a few pixels lower on one phone than another.
  • The numbers are not those of any original game. The feel may differ from what you know, and scores here cannot be compared with scores elsewhere.
Effective date
Last reviewed

Related tools