Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

תגובה אחת

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

// Hungry Mouth game script let gameState={score:0,lives:5,level:1,mouthX:350,mouthY:400,balls:[],gameRunning:false,keys:{},mouthSpeed:6,ballSpeed:2,spawnRate:0.02,lastSpawnTime:0}; const gameContainer=document.getElementById('gameContainer'),mouth=document.getElementById('mouth'),scoreElement=document.getElementById('score'),livesElement=document.getElementById('lives'),levelElement=document.getElementById('level'),gameOverScreen=document.getElementById('gameOver'),startScreen=document.getElementById('startScreen'),finalScoreElement=document.getElementById('finalScore'),debugElement=document.getElementById('debug'); const ballTypes=[{name:'yellow',points:10,weight:40},{name:'blue',points:20,weight:30},{name:'green',points:30,weight:20},{name:'red',points:40,weight:8},{name:'purple',points:50,weight:2}]; function startGame(){startScreen.style.display='none';resetGame();gameState.gameRunning=true;updateDisplay();gameLoop();} function resetGame(){gameState.score=0;gameState.lives=5;gameState.level=1;gameState.mouthX=350;gameState.mouthY=400;gameState.balls=[];gameState.lastSpawnTime=0;document.querySelectorAll('.ball').forEach(b=>b.remove());document.querySelectorAll('.explosion').forEach(exp=>exp.remove());} function restartGame(){gameOverScreen.style.display='none';startGame();} function updateDisplay(){scoreElement.textContent=gameState.score;levelElement.textContent=gameState.level;livesElement.textContent='u2764uFE0F'.repeat(Math.max(0,gameState.lives));mouth.style.left=gameState.mouthX+'px';mouth.style.top=gameState.mouthY+'px';if(debugElement.style.display!=='none'){document.getElementById('mouthPos').textContent=`${gameState.mouthX}, ${gameState.mouthY}`;document.getElementById('ballCount').textContent=gameState.balls.length;document.getElementById('activeKeys').textContent=Object.keys(gameState.keys).filter(k=>gameState.keys[k]).join(', ');}} function createBall(){const totalWeight=ballTypes.reduce((sum,t)=>sum+t.weight,0);let random=Math.random()*totalWeight;let selectedType=ballTypes[0];for(const type of ballTypes){if(random<=type.weight){selectedType=type;break;}random-=type.weight;}const ball={x:Math.random()*730,y:-40,vx:0,vy:gameState.ballSpeed+(gameState.level-1)*0.3,type:selectedType.name,points:selectedType.points,element:document.createElement('div'),id:Date.now()+Math.random()};ball.element.className=`ball ${ball.type}`;ball.element.textContent=ball.points;ball.element.style.left=ball.x+'px';ball.element.style.top=ball.y+'px';gameContainer.appendChild(ball.element);gameState.balls.push(ball);} function createExplosion(x,y){const explosion=document.createElement('div');explosion.className='explosion';explosion.style.left=(x-30)+'px';explosion.style.top=(y-30)+'px';gameContainer.appendChild(explosion);setTimeout(()=>{explosion.parentNode&&explosion.parentNode.removeChild(explosion);},600);} function checkCollision(ball){const ballCenterX=ball.x+17.5;const ballCenterY=ball.y+17.5;const mouthCenterX=gameState.mouthX+50;const mouthCenterY=gameState.mouthY+40;const distance=Math.sqrt((ballCenterX-mouthCenterX)**2+(ballCenterY-mouthCenterY)**2);return distance<50;} function updateBalls(){for(let i=gameState.balls.length-1;i>=0;i--){const ball=gameState.balls[i];ball.y+=ball.vy;ball.element.style.top=ball.y+'px';if(checkCollision(ball)){ball.element.classList.add('eaten');mouth.classList.add('eating','bounce');gameState.score+=ball.points*gameState.level;createExplosion(ball.x+17.5,ball.y+17.5);setTimeout(()=>{ball.element.parentNode&&ball.element.parentNode.removeChild(ball.element);},400);gameState.balls.splice(i,1);setTimeout(()=>{mouth.classList.remove('eating','bounce');},300);if(gameState.score>0&&gameState.score%300===0){gameState.level++;}}else if(ball.y>650){gameState.lives--;ball.element.parentNode&&ball.element.parentNode.removeChild(ball.element);gameState.balls.splice(i,1);if(gameState.lives<=0){endGame();return;}}}} function handleInput(){const speed=gameState.mouthSpeed;if(gameState.keys['ArrowLeft']||gameState.keys['a']||gameState.keys['A']){gameState.mouthX=Math.max(0,gameState.mouthX-speed);}if(gameState.keys['ArrowRight']||gameState.keys['d']||gameState.keys['D']){gameState.mouthX=Math.min(700,gameState.mouthX+speed);}if(gameState.keys['ArrowUp']||gameState.keys['w']||gameState.keys['W']){gameState.mouthY=Math.max(-20,gameState.mouthY-speed);}if(gameState.keys['ArrowDown']||gameState.keys['s']||gameState.keys['S']){gameState.mouthY=Math.min(520,gameState.mouthY+speed);}} function gameLoop(){if(!gameState.gameRunning)return;const currentTime=Date.now();handleInput();updateBalls();updateDisplay();const maxBalls=Math.min(10,5+gameState.level);const spawnChance=gameState.spawnRate+(gameState.level-1)*0.005;if(gameState.balls.length500){createBall();gameState.lastSpawnTime=currentTime;}requestAnimationFrame(gameLoop);} function endGame(){gameState.gameRunning=false;finalScoreElement.textContent=gameState.score;gameOverScreen.style.display='flex';gameState.balls.forEach(ball=>{ball.element.parentNode&&ball.element.parentNode.removeChild(ball.element);});gameState.balls=[];} document.addEventListener('keydown',e=>{gameState.keys[e.key]=true;if(e.key==='F12'){e.preventDefault();debugElement.style.display=debugElement.style.display==='none'?'block':'none';}}); document.addEventListener('keyup',e=>{gameState.keys[e.key]=false;}); let touchStartX=0,touchStartY=0; gameContainer.addEventListener('touchstart',e=>{e.preventDefault();touchStartX=e.touches[0].clientX;touchStartY=e.touches[0].clientY;}); gameContainer.addEventListener('touchmove',e=>{e.preventDefault();const touchX=e.touches[0].clientX;const touchY=e.touches[0].clientY;const deltaX=(touchX-touchStartX)*0.8;const deltaY=(touchY-touchStartY)*0.8;gameState.mouthX=Math.max(0,Math.min(700,gameState.mouthX+deltaX));gameState.mouthY=Math.max(-20,Math.min(520,gameState.mouthY+deltaY));touchStartX=touchX;touchStartY=touchY;}); document.addEventListener('touchmove',e=>{e.preventDefault();},{passive:false}); console.log('uD83CuDFAE u05D4u05DEu05E9u05D7u05E7 u05E0u05D8u05E2 u05D1u05D4u05E6u05DCu05D7u05D4! u05DCu05D7u05E5 F12 u05DCu05DEu05E6u05D1 u05D3u05D9u05D1u05D5u05D2'); דילוג לתוכן