◀ VibeCruiser

qkc can fly

A free Flappy Bird game — play it in your browser, no install. 「qkc 会飞」—— 用真人照片当小鸟的 Flappy Bird 单文件网页游戏。单文件 index.html 双击即玩,离线运行,零外部依赖。

by @demonloverrr · demonloverrr/qkc-can-fly on GitHubLANG HTMLHOSTED ON DEMONLOVERRR.GITHUB.IOUPDATED 29 Sep 2026

Vote and save it — continue with GitHub or sign in free

Made this, @demonloverrr? See how many people played it → or use email

▶ Play full screen ▲ Vote with GitHub ▲ Vote with email

GitHub asks to share your profile and email with us. We never post anything.

Open the live demo Source on GitHub

From the README

index.html 是构建产物,里面嵌着一段 25 KB 的图片 base64,人肉编辑很容易被那串字符淹没。 两者是同一份代码:build.py 只做一件事——把模板里的占位符替换成 base64。

为什么是方形 JPEG 而不是圆形透明 PNG? 圆形效果在 Canvas 里用 ctx.arc() + ctx.clip() 绘制时完成,视觉上完全一样, 但体积从 135 KB 降到 19 KB。PNG 的 alpha 通道在游戏里根本用不上。

纯 ASCII 文本,内容就是 bird_face.jpg 的 base64(不带 data: 前缀)。 build.py 把它注入模板中的 "__BIRD_B64__" 字面量,运行时拼成 data URI:

同一份 data URI 同时喂给 new Image()(Canvas 绘制)——所以运行时没有任何网络请求。

速度上限 + 缝隙下限保证难度收敛,不会在第 30 分变成不可能完成的任务。

Read the full README on GitHub →

Built something like this? Submit your vibe — free account, takes a minute. How listing works.

More like this

More Flappy Bird games →

Made this?

Claim it: create a free account, then press CLAIM THIS in the cruiser. Put the badge below in your README or on your demo page first; that link is how we know it's yours.

Your project is on the cruise, loaded live from your own site. Put the badge in your README or on the demo page: it shows your live play count, it links back to this page, and everyone who lands here is one click from running the real thing.

On VibeCruiser

How listing, the badge and claiming work →