Meta Description" name="description" />

Share this result

Previews are deleted daily. Get a permanent share link sent to your inbox:
Script
<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Mini Free Fire Mobile</title> <style> body { margin: 0; padding: 0; background-color: #121212; color: #ffffff; font-family: sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; overflow: hidden; touch-action: none; } h3 { margin: 5px; color: #ff9900; } #stats { font-size: 14px; margin-bottom: 5px; } canvas { background-color: #2e3d29; border: 2px solid #ff9900; } .controls-hint { font-size: 11px; color: #aaa; margin-top: 5px; text-align: center; } </style> </head> <body> <h3>ЁЯФе MINI FREE FIRE MOBILE</h3> <div id="stats">HP: <span id="hp" style="color: #0f0;">100</span> | Kills: <span id="kills" style="color: #f33;">0</span></div> <canvas id="gameCanvas" width="360" height="450"></canvas> <div class="controls-hint">рд╕реНрдХреНрд░реАрди рдкрд░ рдЯрдЪ рдХрд░рдХреЗ рдореВрд╡ рдХрд░реЗрдВ рдФрд░ рдСрдЯреЛ-рдлрд╛рдпрд░ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!</div> <script> const canvas = document.getElementById("gameCanvas"); const ctx = canvas.getContext("2d"); const hpElement = document.getElementById("hp"); const killsElement = document.getElementById("kills"); let player = { x: canvas.width / 2, y: canvas.height / 2, radius: 15, color: "#00ffcc", speed: 3, hp: 100 }; let bullets = []; let enemies = []; let kills = 0; let gameOver = false; let targetX = player.x; let targetY = player.y; // рдЯрдЪ рдХрдВрдЯреНрд░реЛрд▓ canvas.addEventListener("touchmove", (e) => { const rect = canvas.getBoundingClientRect(); targetX = e.touches[0].clientX - rect.left; targetY = e.touches[0].clientY - rect.top; e.preventDefault(); }, { passive: false }); canvas.addEventListener("click", (e) => { const rect = canvas.getBoundingClientRect(); targetX = e.clientX - rect.left; targetY = e.clientY - rect.top; }); // рдСрдЯреЛ рдлрд╛рдпрд░ setInterval(() => { if (gameOver || enemies.length === 0) return; // рд╕рдмрд╕реЗ рдкрд╛рд╕ рд╡рд╛рд▓реЗ рджреБрд╢реНрдорди рдХреЛ рдвреВрдВрдвреЗрдВ let closest = enemies[0]; let minDist = Math.hypot(player.x - closest.x, player.y - closest.y); enemies.forEach(e => { let d = Math.hypot(player.x - e.x, player.y - e.y); if (d < minDist) { minDist = d; closest = e; } }); const angle = Math.atan2(closest.y - player.y, closest.x - player.x); bullets.push({ x: player.x, y: player.y, dx: Math.cos(angle) * 7, dy: Math.sin(angle) * 7, radius: 3 }); }, 400); // рджреБрд╢реНрдорди рдмрдирд╛рдирд╛ setInterval(() => { if (enemies.length < 4 && !gameOver) { enemies.push({ x: Math.random() * canvas.width, y: Math.random() < 0.5 ? 0 : canvas.height, radius: 12, color: "#ff3333", speed: 1.2, hp: 20 }); } }, 2000); function update() { if (gameOver) return; // рдкреНрд▓реЗрдпрд░ рдореВрд╡рдореЗрдВрдЯ рдЯреБрд╡рд░реНрдбреНрд╕ рдЯрдЪ let dx = targetX - player.x; let dy = targetY - player.y; let dist = Math.hypot(dx, dy); if (dist > 2) { player.x += (dx / dist) * player.speed; player.y += (dy / dist) * player.speed; } // рдЧреЛрд▓рд┐рдпрд╛рдВ рдЕрдкрдбреЗрдЯ bullets.forEach((b, index) => { b.x += b.dx; b.y += b.dy; if (b.x < 0 || b.x > canvas.width || b.y < 0 || b.y > canvas.height) { bullets.splice(index, 1); } }); // рджреБрд╢реНрдорди рдЕрдкрдбреЗрдЯ enemies.forEach((enemy, eIndex) => { let angle = Math.atan2(player.y - enemy.y, player.x - enemy.x); enemy.x += Math.cos(angle) * enemy.speed; enemy.y += Math.sin(angle) * enemy.speed; // рдбреИрдореЗрдЬ if (Math.hypot(player.x - enemy.x, player.y - enemy.y) < player.radius + enemy.radius) { player.hp -= 0.4; hpElement.innerText = Math.max(0, Math.floor(player.hp)); if (player.hp <= 0) { gameOver = true; alert("Game Over! Kills: " + kills); location.reload(); } } // рдЧреЛрд▓реА рд▓рдЧрдирд╛ bullets.forEach((b, bIndex) => { if (Math.hypot(b.x - enemy.x, b.y - enemy.y) < b.radius + enemy.radius) { enemy.hp -= 10; bullets.splice(bIndex, 1); if (enemy.hp <= 0) { enemies.splice(eIndex, 1); kills++; killsElement.innerText = kills; } } }); }); } function draw() { ctx.clearRect(0, 0, canvas.width, canvas.height); // рдкреНрд▓реЗрдпрд░ ctx.beginPath(); ctx.arc(player.x, player.y, player.radius, 0, Math.PI * 2); ctx.fillStyle = player.color; ctx.fill(); ctx.closePath(); // рдмреБрд▓реЗрдЯреНрд╕ bullets.forEach(b => { ctx.beginPath(); ctx.arc(b.x, b.y, b.radius, 0, Math.PI * 2); ctx.fillStyle = "#ff0"; ctx.fill(); ctx.closePath(); }); // рдПрдирд┐рдореА enemies.forEach(e => { ctx.beginPath(); ctx.arc(e.x, e.y, e.radius, 0, Math.PI * 2); ctx.fillStyle = e.color; ctx.fill(); ctx.closePath(); }); requestAnimationFrame(loop); } function loop() { update(); draw(); } loop(); </script> </body> </html>
Landing Page
This ad does not have a landing page available
Network Timeline
Performance Summary

1

Requests

1

Domains

7KB

Transfer Size

7KB

Content Size

101.0ms

Dom Content Loaded

204.0ms

First Paint

101.0ms

Load Time
Domain Breakdown
Transfer Size (bytes)
Loading...
Content Size (bytes)
Loading...
Header Size (bytes)
Loading...
Requests
Loading...
Timings (ms)
Loading...
Total Time
Loading...
Content Breakdown
Transfer Size (bytes)
Loading...
Content Size (bytes)
Loading...
Header Size (bytes)
Loading...
Requests
Loading...