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.
按已采集快照查看用户数变化。
展示最近 7 日窗口内已采集的评分快照,辅助判断近期评分是否稳定。
同口径展示 1 天、7 天、30 天的绝对增长与增长率。
查看发布时间、版本、支持语言、最近更新和抓取时间。
查看插件说明、主要功能和适用场景。
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
查看最近评论和评分分布。
商店综合星级:4.6。下方星级分布只统计已同步评论正文;如果某个插件只有公开分数、没有真实评论正文,这里可能为空。
查看 Chrome 商店详情页中的相关产品。
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.