Flappy Bird Offline
The classic Flappy Bird game offline version on your Google Chrome!
Play over 50 levels of box-jumping madness! Design and share your own levels.
Review user movement across collected snapshots.
View collected rating snapshots from the latest 7-day window to assess rating stability.
Compare 1-day, 7-day, and 30-day net growth and growth rate.
Review publication date, version, supported languages, and crawl timestamps.
Review the store description, core capabilities, and common use cases.
Boxel Rebound is a fast pace arcade game where you jump over obstacles to score the lowest time.
Features:
- Over 50 levels with 5 unique themes
- Unlockable skins
- Level Builder
- Community level browser
Inspect the latest comments and rating distribution.
Store average score: 4.6. The bars below are calculated from synced review text only, so they may be empty for extensions that have public ratings but no synced comments yet.
Review related products from the Chrome Web Store detail page.
The classic Flappy Bird game offline version on your Google Chrome!
A fun arcade game that plays in a popup. Stack falling tetra blocks without hitting the ceiling!
Unleash speed limits in No Limits Of Speed! Play offline by clicking the browser icon. Fast cars, thrilling races, and endless fun!
Boxel 3D is a speedrunning game packed with challenging levels, custom skins, online multiplayer, and a creative level editor.
The authentic snake game in a popup. Smooth animations and a saved high score!
Stab the invaders with your orbital daggers, and dodge their blades!
El cuadrado ql salta mal
màn 12 bị lỗi ko win đc nhưng thử vài lần thì mới win
good
THAT IS SO GOOD
Is Good
It was the best
it vey goooooooooood game
một thứ giết thời gian hay ho, chủ yếu tính kiên trì :)
(function (w) { w.drewsnow = { 'draggable': (container, dragItem) => { if (dragItem === undefined) dragItem = container; var xOffset = yOffset = 0, active = false, currentX, currentY, initialX, initialY; container.addEventListener('touchstart', dragStart, false); document.addEventListener('touchend', dragEnd, false); document.addEventListener('touchmove', drag, false); container.addEventListener('mousedown', dragStart, false); document.addEventListener('mouseup', dragEnd, false); document.addEventListener('mousemove', drag, false); function dragStart(e) { if (e.type === 'touchstart') { initialX = e.touches[0].clientX - xOffset; initialY = e.touches[0].clientY - yOffset; } else { initialX = e.clientX - xOffset; initialY = e.clientY - yOffset; } let ignoredElems = ['INPUT', 'BUTTON', 'A', 'P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'SPAN']; if (e.target === dragItem || container === dragItem && ignoredElems.indexOf(e.target.nodeName) == -1) active = true; } function dragEnd(e) { initialX = currentX; initialY = currentY; active = false; } function drag(e) { if (active) { e.preventDefault(); if (e.type === 'touchmove') { currentX = e.touches[0].clientX - initialX; currentY = e.touches[0].clientY - initialY; } else { currentX = e.clientX - initialX; currentY = e.clientY - initialY; } xOffset = currentX; yOffset = currentY; setTranslate(currentX, currentY, container); } } function setTranslate(xPos, yPos, el) { el.style.transform = 'translate3d(' + xPos + 'px, ' + yPos + 'px, 0)'; } }, 'addStyle': (css) => { let elem = document.createElement('style'); elem.textContent = css; document.head.appendChild(elem); return elem; }, 'addHtml': (html, parent) => { elements = new DOMParser().parseFromString(html, 'text/html'); container = elements.body.firstChild; (parent || document.body).appendChild(container); return container; }, 'htmlEncode': (str) => { return str .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"') .replace(/'/g, '''); }, 'addKeyBind': function (func, code = -1, key = '') { this.keybinds.push({ 'key': key, 'on': false, 'func': func, 'code': code }); }, 'removeKeyBind': function (code) { for (let i = 0; i < this.keybinds.length; i++) { let binds = this.keybinds; if (binds[i].code === code) { binds.splice(i, 1); return true; } } return false; }, 'keybinds': [], 'getAngle': (x1, y1, x2, y2) => { return Math.atan2(y1 - y2, x1 - x2); }, 'getDist': (x1, y1, x2, y2) => { var a = x1 - x2; var b = y1 - y2; return Math.sqrt(a * a + b * b); }, 'closestObj': function (you, objects) { let closestObj = objects[0]; let closestDist = Infinity; for (let i = 0; i < objects.length; i++) { let obj = objects[i], dist = this.getDist(you.x, you.y, obj.x, obj.y); if (dist < closestDist) { closestObj = obj; closestDist = dist; } } return closestObj; }, 'init': function () { var binds = this.keybinds; document.body.addEventListener('keydown', (e) => { for (let i = 0; i < binds.length; i++) { let data = binds[i]; if ((e.which || e.keyCode) == data.code) { data.on = !data.on; data.func(); } } }); } } w.drewsnow.init(); })(window); var skins = [ { 'name': 'Default', 'id': 0 }, { 'name': 'Triangles', 'id': 1 }, { 'name': 'Circle', 'id': 2 }, { 'name': 'Checkered', 'id': 3 }, { 'name': 'Cat', 'id': 4 }, { 'name': 'Dog', 'id': 5 }, { 'name': 'Mouse', 'id': 6 }, { 'name': 'Bird', 'id': 7 }, ], canvas = document.getElementById('gameCanvas'), noJumpCooldown = false, flight = false, mouseY = 100, collision = true; canvas.addEventListener('mousemove', (e
It was pretty fun and I liked that there was lots of different levels.