| Data | Gioco | Gravità | Descrizione | Step Riproduzione |
|---|---|---|---|---|
| 2026-01-26 14:57:06 | site | high | Sono sempre io Festo gay | |
| 2026-01-26 14:56:37 | site | low | Ciao mina sono Diego non è un vero e propio bug... lo avrai fatto ti proposito però è brutto che quasi tutti i giochi hanno una icona ma tipo pac-man e altri 2 non ce la hanno.... risorvi sta cosa mettendo i loghi a chi manca. Grazie mille | |
| 2026-01-25 17:46:42 | targets | low | test | |
| 2026-01-24 09:38:30 | jumps | medium | il punteggio non va | |
| 2026-01-23 07:41:30 | jumps | high | nUOVO CODIXE <!DOCTYPE html> <html lang="it"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Neon Jump | Tuned Version</title> <link href="https://fonts.googleapis.com/css2?family=Lilita+One&family=Inter:wght@400;700;900&display=swap" rel="stylesheet"> <script src="https://unpkg.com/@phosphor-icons/web@2.0.3"></script> <style> :root { --bg-base: #020617; --bg-gradient: radial-gradient(circle at 50% 100%, #1e1b4b 0%, #020617 70%); --card-bg: rgba(30, 41, 59, 0.6); --card-border: rgba(34, 211, 238, 0.2); --text-main: #f1f5f9; --text-muted: #94a3b8; --player: #22d3ee; --platform: #4ade80; --spike: #ef4444; --pad: #d946ef; --orb: #facc15; --font-main: 'Inter', sans-serif; --font-title: 'Lilita One', cursive; } body { font-family: var(--font-main); background-color: var(--bg-base); background-image: var(--bg-gradient); background-attachment: fixed; color: var(--text-main); display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 100vh; margin: 0; padding: 20px; box-sizing: border-box; overflow: hidden; user-select: none; touch-action: none; } .back-btn { align-self: flex-start; margin-bottom: 20px; color: var(--text-muted); text-decoration: none; font-family: var(--font-main); font-weight: 700; display: flex; align-items: center; gap: 8px; transition: color 0.3s; z-index: 100; } .back-btn:hover { color: var(--player); } h1 { font-family: var(--font-title); background: linear-gradient(to right, var(--player), var(--pad)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: 3rem; margin-bottom: 20px; text-align: center; letter-spacing: 2px; filter: drop-shadow(0 0 10px rgba(34, 211, 238, 0.3)); } .game-wrapper { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 600px; } .game-container { display: flex; flex-direction: column; align-items: center; padding: 25px; background-color: var(--card-bg); border: 1px solid var(--card-border); border-radius: 16px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5); backdrop-filter: blur(12px); position: relative; width: 100%; box-sizing: border-box; } .hud-display { width: 100%; display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; background: rgba(15, 23, 42, 0.5); padding: 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.05); } .score-box { text-align: center; line-height: 1.2; } .score-label { font-size: 0.7em; color: var(--text-muted); display: block; letter-spacing: 1px; } .score-val { font-size: 1.5em; font-family: var(--font-title); } #score { color: var(--player); text-shadow: 0 0 10px rgba(34,211,238,0.3); } #high-score-val { color: var(--orb); } #game-wrapper { position: relative; width: 100%; height: 350px; background-color: #020617; border: 2px solid rgba(255,255,255,0.1); border-radius: 8px; overflow: hidden; box-shadow: inset 0 0 30px #000; background-image: linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); background-size: 40px 40px; } canvas { display: block; width: 100%; height: 100%; } .modal-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(2, 6, 23, 0.9); display: none; flex-direction: column; justify-content: center; align-items: center; z-index: 100; backdrop-filter: blur(4px); } .modal-content { font-family: var(--font-title); font-size: 3em; color: var(--spike); text-shadow: 0 0 20px var(--spike); margin-bottom: 10px; } #final-score-text { color: #fff; font-size: 1.2rem; margin-bottom: 20px; font-weight: bold; font-family: var(--font-main); } #highscore-list { width: 80%; max-height: 120px; overflow-y: auto; background: rgba(255,255,255,0.05); border: 1px solid var(--card-border); border-radius: 8px; padding: 30px; margin-bottom: 20px; font-size: 0.9rem; text-align: left; } #highscore-list h3 { margin-top: 0; color: var(--player); text-align: center; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 5px; } #highscore-list ol { padding-left: 20px; margin: 0; } .controls-panel { width: 100%; display: flex; justify-content: center; margin-top: 20px; } button { font-family: var(--font-title); font-size: 1.2em; padding: 15px 40px; border: 1px solid var(--player); border-radius: 8px; cursor: pointer; transition: all 0.2s ease; color: var(--player); text-transform: uppercase; background-color: rgba(34, 211, 238, 0.1); display: flex; align-items: center; gap: 10px; } button:hover { background: var(--player); color: #000; box-shadow: 0 0 20px rgba(34, 211, 238, 0.4); } .instructions { font-size: 0.9em; color: var(--text-muted); margin-top: 15px; text-align: center; line-height: 1.6; background: rgba(0,0,0,0.2); padding: 10px; border-radius: 8px; } </style> </head> <body> <a href="#" class="back-btn" onclick="history.back()"><i class="ph-bold ph-arrow-left"></i> HUB</a> <div class="game-wrapper"> <h1>Neon Jump</h1> <div class="game-container"> <div class="hud-display"> <div class="score-box"> <span class="score-label">DISTANZA</span> <span id="score" class="score-val">0m</span> </div> <div class="score-box"> <span class="score-label">RECORD</span> <span id="high-score-val" class="score-val">0m</span> </div> </div> <div id="game-wrapper"> <canvas id="gameCanvas"></canvas> <div id="modal" class="modal-overlay"> <div class="modal-content">CRASHED</div> <div id="final-score-text">Distanza: 0m</div> <div id="highscore-list"><p style="text-align:center">Nessun record salvato.</p></div> <button onclick="resetGame()">RIPROVA <i class="ph-bold ph-arrow-counter-clockwise"></i></button> </div> </div> <div class="controls-panel"> <button id="start-btn" onclick="startGame()">Start Run <i class="ph-bold ph-person-simple-run"></i></button> </div> <div class="instructions"> <span style="color: var(--pad)">Viola</span> = Super Salto | <span style="color: var(--orb)">Oro</span> = Salto Doppio (Aria)<br> Tieni premuto per saltare più in alto. </div> </div> </div> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); let W, H; // --- FISICA CALIBRATA (FINAL MIX) --- const GRAVITY_NORMAL = 0.65; // Gravità standard const GRAVITY_HEAVY = 1.6; // Gravità quando lasci il tasto (ridotta da 1.8) const JUMP_FORCE = -12.5; const PAD_FORCE = -18; const ORB_FORCE = -14; // Aumentata forza orba per compensare la gravità const SPEED_BASE = 5.5; const SPEED_MAX = 11; const GROUND_H = 50; const COYOTE_MAX = 8; const BUFFER_MAX = 10; // Buffer aumentato per input più reattivi const C_PLAYER = '#22d3ee'; const C_PLAT = '#4ade80'; const C_SPIKE = '#ef4444'; const C_PAD = '#d946ef'; const C_ORB = '#facc15'; let player = { x: 100, y: 0, w: 30, h: 30, vy: 0, grounded: false, rot: 0, activeOrb: null }; let coyoteTimer = 0, jumpBuffer = 0, minJumpFrames = 0; let platforms = [], spikes = [], pads = [], orbs = [], particles = []; let score = 0, highScore = 0, speed = SPEED_BASE, dist = 0; let active = false, animId, jumpInput = false; function resize() { const el = document.getElementById('game-wrapper'); W = el.clientWidth; H = el.clientHeight; canvas.width = W; canvas.height = H; if(!active) drawStatic(); } window.addEventListener('resize', resize); resize(); function startGame() { if(active) return; player = { x: 50, y: H-GROUND_H-30, w: 30, h: 30, vy: 0, grounded: true, rot: 0, activeOrb: null }; platforms = []; spikes = []; pads = []; orbs = []; particles = []; score = 0; dist = 0; speed = SPEED_BASE; active = true; coyoteTimer = COYOTE_MAX; jumpBuffer = 0; minJumpFrames = 0; platforms.push({ x: 0, y: H-GROUND_H, w: W*1.5, h: GROUND_H }); document.getElementById('modal').style.display = 'none'; document.getElementById('start-btn').style.display = 'none'; loop(); } function loop() { if(!active) return; update(); draw(); animId = requestAnimationFrame(loop); } function update() { if(speed < SPEED_MAX) speed += 0.0008; dist += speed; score = Math.floor(dist/10); document.getElementById('score').innerText = score + "m"; // Gestione Buffer Input if(jumpInput) jumpBuffer = BUFFER_MAX; if(jumpBuffer > 0) jumpBuffer--; if(minJumpFrames > 0) minJumpFrames--; // --- FISICA INTELLIGENTE --- // Applica gravità pesante SOLO SE: // 1. Stiamo salendo (vy < 0) // 2. Il giocatore NON tiene premuto // 3. Il "tempo minimo di salto" è scaduto (questo risolve il salto basso) let currentGrav = GRAVITY_NORMAL; if (player.vy < 0 && !jumpInput && minJumpFrames === 0) { currentGrav = GRAVITY_HEAVY; } player.vy += currentGrav; player.y += player.vy; // Rotazione if(!player.grounded) player.rot += 0.18; else { const snap = Math.round(player.rot / (Math.PI/2)) * (Math.PI/2); player.rot += (snap - player.rot) * 0.3; } let onGround = false; platforms.forEach(p => { p.x -= speed; // Collisione AABB if(player.x < p.x + p.w && player.x + player.w > p.x && player.y < p.y + p.h && player.y + player.h > p.y) { // Atterraggio permissivo if(player.vy >= 0 && (player.y + player.h - player.vy) <= p.y + 25) { player.y = p.y - player.h; player.vy = 0; onGround = true; } else { gameOver(); } } }); if(onGround) { player.grounded = true; coyoteTimer = COYOTE_MAX; minJumpFrames = 0; // Auto-Jump (Bunny Hop) if(jumpBuffer > 0 || jumpInput) { doJump(JUMP_FORCE); jumpBuffer = 0; onGround = false; } } else { player.grounded = false; if(coyoteTimer > 0) coyoteTimer--; } if(player.y > H + 100) gameOver(); // Salto Coyote (Salto in ritardo nel vuoto) if(jumpBuffer > 0 && coyoteTimer > 0 && !onGround) { doJump(JUMP_FORCE); } spikes.forEach(s => { s.x -= speed; if(player.x+6 < s.x+s.w-6 && player.x+player.w-6 > s.x+6 && player.y+6 < s.y+s.h-6 && player.y+player.h-6 > s.y+6) gameOver(); }); pads.forEach(p => { p.x -= speed; if(checkColl(player, p) && player.vy >= 0) { doJump(PAD_FORCE); player.rot = 0; spawnParticles(player.x+player.w/2, player.y+player.h, C_PAD); } }); // --- LOGICA ORBE FIXATA --- player.activeOrb = null; orbs.forEach(o => { o.x -= speed; // Hitbox aumentata (raggio + 50px) per prendere l'orba più facilmente const distOrb = Math.hypot((player.x+player.w/2)-(o.x+o.r), (player.y+player.h/2)-(o.y+o.r)); if(distOrb < o.r + 50 && !o.used) player.activeOrb = o; // FIX: Ora si attiva se tieni premuto (jumpInput) OPPURE se hai cliccato da poco (jumpBuffer) if(player.activeOrb === o && !o.used) { if(jumpBuffer > 0 || jumpInput) { doJump(ORB_FORCE); o.used = true; spawnParticles(o.x+o.r, o.y+o.r, C_ORB); player.rot = 0; jumpBuffer = 0; } } }); generateLevel(); cleanup(); updateParticles(); } // Funzione Salto Centralizzata function doJump(force) { player.vy = force; player.grounded = false; coyoteTimer = 0; // Garantisce almeno 8 frame di salita leggera anche se molli il tasto minJumpFrames = 8; if(!player.activeOrb) spawnParticles(player.x+player.w/2, player.y+player.h, '#fff'); } function checkColl(a, b) { return a.x < b.x+b.w && a.x+a.w > b.x && a.y < b.y+b.h && a.y+a.h > b.y; } // --- GENERATORE LIVELLI --- function generateLevel() { const last = platforms[platforms.length-1]; if(last.x + last.w < W + 300) { let gap = 90 + Math.random() * 120; let deltaY = (Math.random() * 180) - 90; let type = 'normal'; let newY = last.y - deltaY; if(newY < 180) newY = 180 + Math.random() * 60; if(newY > H - 100) newY = H - 100 - Math.random() * 60; newY = Math.round(newY/20)*20; const isGoingUp = newY < last.y - 30; const isBigGap = gap > 150; if (isGoingUp || isBigGap) { if(Math.random() < 0.6) type = 'orb'; else if (Math.random() < 0.5) { type = 'pad'; gap = Math.min(gap, 130); } } else { const rnd = Math.random(); if(rnd < 0.08) type = 'orb'; else if(rnd < 0.15) type = 'pad'; else type = 'normal'; } const newX = last.x + last.w + gap; let baseW = Math.max(120, 450 - (dist * 0.03) - (Math.random()*60)); let newW = (type === 'pad') ? Math.max(160, baseW) : baseW; platforms.push({x:newX, y:newY, w:newW, h:400}); if(type === 'orb') { const midX = last.x + last.w + gap/2; const peakY = Math.min(last.y, newY) - 70; orbs.push({x:midX-10, y:peakY, r:15, used:false}); } else if(type === 'pad') { pads.push({x:newX + 30, y:newY-10, w:40, h:10}); } else if(type === 'normal' && newW > 200) { if(Math.random() < 0.5) { const sX = newX + 120 + Math.random()*(newW-180); spikes.push({x:sX, y:newY-30, w:30, h:30}); } } } } function cleanup() { platforms = platforms.filter(p => p.x+p.w > -100); spikes = spikes.filter(s => s.x+s.w > -100); pads = pads.filter(p => p.x+p.w > -100); orbs = orbs.filter(o => o.x+o.r*2 > -100); } function draw() { ctx.clearRect(0,0,W,H); platforms.forEach(p => { ctx.fillStyle = C_PLAT; ctx.fillRect(p.x, p.y, p.w, p.h); ctx.fillStyle = '#86efac'; ctx.fillRect(p.x, p.y, p.w, 6); ctx.fillStyle = 'rgba(0,0,0,0.15)'; ctx.fillRect(p.x+15, p.y+20, 8, p.h-20); ctx.fillRect(p.x+p.w-23, p.y+20, 8, p.h-20); }); ctx.fillStyle = C_PAD; ctx.shadowBlur = 15; ctx.shadowColor = C_PAD; pads.forEach(p => ctx.fillRect(p.x, p.y, p.w, p.h)); ctx.shadowBlur = 0; ctx.fillStyle = C_SPIKE; spikes.forEach(s => { ctx.beginPath(); ctx.moveTo(s.x, s.y+s.h); ctx.lineTo(s.x+s.w/2, s.y); ctx.lineTo(s.x+s.w, s.y+s.h); ctx.fill(); }); orbs.forEach(o => { if(o.used) return; ctx.fillStyle = C_ORB; ctx.shadowBlur = 15; ctx.shadowColor = C_ORB; ctx.beginPath(); ctx.arc(o.x+o.r, o.y+o.r, o.r, 0, Math.PI*2); ctx.fill(); ctx.shadowBlur = 0; if(player.activeOrb === o) { ctx.strokeStyle = '#fff'; ctx.lineWidth = 3; ctx.beginPath(); ctx.arc(o.x+o.r, o.y+o.r, o.r+6, 0, Math.PI*2); ctx.stroke(); } }); ctx.save(); ctx.translate(player.x+player.w/2, player.y+player.h/2); ctx.rotate(player.rot); ctx.fillStyle = C_PLAYER; ctx.shadowBlur = 20; ctx.shadowColor = C_PLAYER; ctx.fillRect(-player.w/2, -player.h/2, player.w, player.h); ctx.fillStyle = '#fff'; ctx.shadowBlur = 0; ctx.fillRect(6, -10, 8, 8); ctx.restore(); drawParticles(); } function drawStatic() { ctx.clearRect(0,0,W,H); ctx.fillStyle = '#333'; ctx.fillRect(0, H-GROUND_H, W, GROUND_H); ctx.fillStyle = C_PLAYER; ctx.fillRect(50, H-GROUND_H-30, 30, 30); } function spawnParticles(x, y, c) { for(let i=0; i<8; i++) particles.push({x, y, vx:(Math.random()-0.5)*12, vy:(Math.random()-0.5)*12, life:1.0, c}); } function updateParticles() { for(let i=particles.length-1; i>=0; i--) { let p = particles[i]; p.x += p.vx; p.y += p.vy; p.life -= 0.05; if(p.life <= 0) particles.splice(i,1); } } function drawParticles() { particles.forEach(p => { ctx.globalAlpha = p.life; ctx.fillStyle = p.c; ctx.fillRect(p.x, p.y, 4, 4); }); ctx.globalAlpha = 1; } const startJ = (e) => { if(e.type === 'touchstart' || e.code === 'Space' || e.code === 'ArrowUp') if(e.cancelable && e.target === canvas) e.preventDefault(); if(!active) startGame(); jumpInput = true; }; const stopJ = () => jumpInput = false; window.addEventListener('keydown', e => { if(e.code==='Space'||e.code==='ArrowUp') startJ(e); }); window.addEventListener('keyup', stopJ); canvas.addEventListener('touchstart', startJ, {passive:false}); canvas.addEventListener('touchend', stopJ); canvas.addEventListener('mousedown', startJ); canvas.addEventListener('mouseup', stopJ); function gameOver() { active = false; jumpInput = false; cancelAnimationFrame(animId); spawnParticles(player.x, player.y, C_PLAYER); draw(); document.getElementById('final-score-text').innerText = "Distanza: " + score + "m"; document.getElementById('modal').style.display = 'flex'; document.getElementById('start-btn').style.display = 'block'; document.getElementById('start-btn').innerText = "RIPROVA"; if(score > highScore) { highScore = score; document.getElementById('high-score-val').innerText = highScore + "m"; } } function resetGame() { startGame(); } </script> </body> </html> | |
| 2026-01-23 07:21:16 | jumps | medium | A volte quando salti per prendere i pallini gialli, anche se poche volte non li prende | |
| 2026-01-23 07:13:42 | jumps | high | alcuni salti sono impossibili bastarda troia lurida nfame | |
| 2026-01-23 07:08:47 | jumps | medium | Alcuni salti sono impossibili: ce ne sono alcuni o troppo grandi o troppo vicini per essere saltati | |
| 2026-01-22 07:46:47 | pong | low | sesso simulator | |
| 2026-01-22 07:22:18 | io-amo-campo-minato | medium | il bordo sinistro della modalita "hard" mostra numeri che indicano un certo numero di bombe nelle 8 caselle circostanti ma una volta scoperte ce ne sono di meno. | |
| 2026-01-22 07:10:12 | jumps | medium | bello | |
| 2026-01-21 07:51:19 | jumps | medium | Bello | |
| 2026-01-17 22:07:56 | Casadio | low | festo | |
| 2026-01-17 21:52:47 | io-amo-campo-minato | low | test 2 voglio vedere nel admin il nome | |
| 2026-01-17 21:43:57 | other | low | cazzo | festo |