PitSparone
Javascrip: PitSparone
[code] // // controllo tastiera // function acquisizioneInput() { // acquisisco l'input da tastiera if (Key.isDown(Key.SINISTRA)) { posx = posx - 5; } if (Key.isDown(Key.DESTRA)) { posx = posx + 5; } if (Key.isDown(Key.SU)) { posy = posy - 5; } if (Key.isDown(Key.GIU)) { posy = posy + 5; } } // // controllo mouse // function muoviMouse (ev) { if (ev.layerX || ev.layerX == 0) { // Firefox ? posx = ev.layerX; posy = ev.layerY; } else if (ev.offsetX || ev.offsetX == 0) { posx = ev.offsetX; posy = ev.offsetY; } } function mouseclick (ev) { if (ev.layerX || ev.layerX == 0) { // Firefox ? posx = ev.layerX; posy = ev.layerY; } else if (ev.offsetX || ev.offsetX == 0) { posx = ev.offsetX; posy = ev.offsetY; } timeSparo = new Date().getTime(); flagSparo = true; } function aggiornaLogica() { // aggiorno dati e posizioni degli oggetti nella scena } function disegnaScena() { timeAdesso = new Date().getTime(); timeDelta = timeAdesso - timeSparo; // disegno la scena contesto.clearRect(0,0,500,300); //disegna i bersagli contesto.strokeStyle ="#ff0000"; contesto.beginPath(); contesto.lineWidth = 3; contesto.arc(ballX , ballY, ballD, 0 , Math.PI*2, true); contesto.stroke(); // // calcola la distanza tra centro mirino e bersaglio // var dist = Math.sqrt( Math.pow(ballX - posx, 2) + Math.pow(ballY - posy,2)); if (dist <= ballD){ if (flagSparo == true){ flagColpito = true; } contesto.fillStyle = "#00ff00"; } else{ contesto.fillStyle = "#0000ff"; } if (flagColpito == true){ contesto.fillStyle = "#000000"; if (timeDelta >= 500 ){ ballX = Math.floor(Math.random() * 501); ballY = Math.floor(Math.random() * 301); flagColpito = false; } } contesto.fill(); // disegna il mirino contesto.strokeStyle ="#0000ff"; contesto.beginPath(); contesto.lineWidth = 2; contesto.lineCap = "round"; contesto.arc(posx,posy, 10, 0 , Math.PI*2, true); contesto.stroke(); contesto.beginPath(); contesto.arc(posx,posy, 6, 0 , Math.PI*2, true); if (flagSparo == true){ contesto.fillStyle = "#000000"; contesto.fill(); if (timeDelta >= 500 ){ flagSparo = false; } // acquisisco l'elemento associato all'id quadro1 var elemento = document.getElementById("quadro1"); // Modifico la proprietà innerHTML di tale elemento elemento.innerHTML = 'Si Sparoooo ' + flagSparo + " " + timeSparo + " " + timeAdesso + " " + timeDelta + " " + dist; //flagSparo = false; } else{ // acquisisco l'elemento associato all'id quadro1 var elemento = document.getElementById("quadro1"); // Modifico la proprietà innerHTML di tale elemento elemento.innerHTML = 'No Sparoooo ' + flagSparo + " " + timeSparo + " "+ timeAdesso + " " + timeDelta + " " + dist; } contesto.stroke(); contesto.beginPath(); contesto.moveTo (posx -15, posy); contesto.lineTo (posx -6, posy); contesto.moveTo (posx +15, posy); contesto.lineTo (posx +6, posy); contesto.moveTo (posx , posy -15); contesto.lineTo (posx , posy -6); contesto.moveTo (posx , posy +15); contesto.lineTo (posx , posy +6); contesto.stroke(); //contesto.drawImage(mirino,posx - 35,posy - 35); } function gameLoop() { acquisizioneInput(); aggiornaLogica(); disegnaScena(); } function init() { window.addEventListener('keyup', function(event) { Key.onKeyup(event); }, false); window.addEventListener('keydown', function(event) { Key.onKeydown(event); }, false); canvas.addEventListener('mousemove', muoviMouse, false); canvas.addEventListener('click', mouseclick, false); // Attivo l'esecuzione di gameLoop() ogni 25 millisecondi intervallo = window.setInterval(gameLoop,ritardo); } // Dichiarazione variabili globali canvas = document.getElementById("canvas"); contesto = canvas.getContext("2d"); var mirino = new Image(); var timeSparo = new Date().getTime(); var timeAdesso = new Date().getTime(); var timeDelta = new Date().getTime(); var ballX = Math.floor(Math.random() * 501); var ballY = Math.floor(Math.random() * 301); var ballD = 40; var flagSparo = false; var flagColpito = false; mirino.src = "./mirino.JPG"; var posx = 250, posy = 150; var ritardo = 2; // faccio partire il loop init(); [/code]