$(document).ready(function() { var step=3; var stti=10; var frames=stti/2; var interf=0; var interb=0; var interl=0; var interr=0; var player={ x: 0, y: 0, health: 100, weapon: 0 }; var evil=[]; function spawnevil() { newevil=$('
'); where=Math.floor(Math.random()+0.5); if (where==0) { top=0; left=Math.floor(Math.random()*window.innerWidth+0.5); } else if (where==1) { left=0; top=Math.floor(Math.random()*window.innerHeight+0.5); } newevil.css("left", left+"px"); newevil.css("top", top+"px"); $("#frame").append(newevil); } function angle(x, y, bx, by) { return Math.atan2(bx-x, by-y)/Math.PI*-180; } function dpf() { map.panBy(0, -step); player.x -= step; } function dpb() { map.panBy(0, step); player.x += step; } function dpl() { map.panBy(-step, 0); player.y -= step; } function dpr() { map.panBy(step, 0); player.y += step; } window.addEventListener('load', function(e) { window.applicationCache.addEventListener('updateready', function(e) { if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { window.applicationCache.swapCache(); if (confirm('An update for this game has been downloaded. Update now? ')) { window.location.reload(); } } else { } }, false); }, false); function setin(dir) { //functorun=functor; //functorun(); if (dir==0 && !interf) { interf=setInterval(function() { dpf(); }, stti); } if (dir==1 && !interb) { interb=setInterval(function() { dpb(); }, stti); } if (dir==2 && !interl) { interl=setInterval(function() { dpl(); }, stti); } if (dir==3 && !interr) { interr=setInterval(function() { dpr(); }, stti); } } function clrin(dir) { if (dir==0) { clearInterval(interf); interf=0; } if (dir==1) { clearInterval(interb); interb=0; } if (dir==2) { clearInterval(interl); interl=0; } if (dir==3) { clearInterval(interr); interr=0; } } if (!(("ontouchstart" in window) || ("onmsgesturechange" in window))) { $("#dpf, #dpb, #dpl, #dpr").css("display", "none"); } //stackoverflow function getPosition(e) { var targ; if (!e) e = window.event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) targ = targ.parentNode; var x = e.pageX - $(targ).offset().left; var y = e.pageY - $(targ).offset().top; $("#dirh").css("transform", "rotate("+angle(x, y, $("#you").width()/2, $("#you").height()/2)+"deg)"); } function start() { $("#tgpm").fadeOut(); counter=setInterval(function() { timenow=new Date().getTime(); sec=timenow-timebefore; $("#sec").html(sec+"ms"); }, 1); $("#you").on("mousedown", function(event) { getPosition(event); }); $("#you").on("mousemove", function(event) { getPosition(event); }); $("#you").on("mouseup", function(event) { getPosition(event); }); if (("ontouchstart" in window) || ("onmsgesturechange" in window)) { $("#dpf").on("touchstart", function() { setin(0); }); $("#dpb").on("touchstart", function() { setin(1); }); $("#dpl").on("touchstart", function() { setin(2); }); $("#dpr").on("touchstart", function() { setin(3); }); $("#dpf").on("touchend", function() { clrin(0); }); $("#dpb").on("touchend", function() { clrin(1); }); $("#dpl").on("touchend", function() { clrin(2); }); $("#dpr").on("touchend", function() { clrin(3); }); } else { $("#dpf").on("mousedown", function() { setin(0); }); $("#dpb").on("mousedown", function() { setin(1); }); $("#dpl").on("mousedown", function() { setin(2); }); $("#dpr").on("mousedown", function() { setin(3); }); $("#dpf").on("mouseup", function() { clrin(0); }); $("#dpb").on("mouseup", function() { clrin(1); }); $("#dpl").on("mouseup", function() { clrin(2); }); $("#dpr").on("mouseup", function() { clrin(3); }); } $(document).off("keydown"); wasdown=0; $(document).on("keydown", function(eve) { w=eve.which; if (w==87) { setin(0); } else if (w==83) { setin(1); } else if (w==65) { setin(2); } else if (w==68) { setin(3); } else if (w==38) { setin(0); } else if (w==40) { setin(1); } else if (w==37) { setin(2); } else if (w==39) { setin(3); } else if (w==27 || w==81) { end(); } }); $(document).on("keyup", function(eve) { w=eve.which; if (w==87) { clrin(0); } else if (w==83) { clrin(1); } else if (w==65) { clrin(2); } else if (w==68) { clrin(3); } else if (w==38) { clrin(0); } else if (w==40) { clrin(1); } else if (w==37) { clrin(2); } else if (w==39) { clrin(3); } }); } function end() { clrin(0); clrin(1); clrin(2); clrin(3); clearInterval(counter); $("#you").off("mousedown").off("mousemove").off("mouseup"); if (("ontouchstart" in window) || ("onmsgesturechange" in window)) { $("#dpf").off("touchstart").off("touchend"); $("#dpb").off("touchstart").off("touchend"); $("#dpl").off("touchstart").off("touchend"); $("#dpr").off("touchstart").off("touchend"); } else { $("#dpf").off("mousedown").off("mouseup"); $("#dpb").off("mousedown").off("mouseup"); $("#dpl").off("mousedown").off("mouseup"); $("#dpr").off("mousedown").off("mouseup"); } wasdown=0; $(document).off("keyup").off("keydown"); $(document).on("keydown", function(eve) { if (eve.which==27 || eve.which==81) { start(); } }); $("#tgpm").fadeIn(); } function getready() { $("#menu").fadeOut(); $("#bar").css("background-color", "rgba(0, 0, 0, 0.5)"); $("#sec").html("Ready"); $("#bunny").fadeIn(); setTimeout(function() { $("#sec").html("Set"); }, 2000); setTimeout(function() { $("#sec").html("Go! "); }, 4000); setTimeout(function() { $("#kills").html("0 kills"); $("#tgp").fadeIn().click(function() { end(); }); $("#cont").click(function() { start(); }); timebefore=new Date().getTime(); start(); }, 4500); } $("#endg").click(function() { window.location.reload(); }); $("#aboutc").click(function() { $("#aboutc").fadeOut(); }); $("#about").click(function() { $("#aboutc").fadeIn(); }); $("#play").click(function() { getready(); }); $("#opt-maptype").change(function() { x=["h", "r", "s", "t"].indexOf($("#opt-maptype > option:selected").val()); maptype=[google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN][x]; map.setMapTypeId(maptype); }); });