function scaleCanvas() { canvas.width = $(window).width(); canvas.height = $(window).height(); if (canvas.height > canvas.width) { settings.scale = (canvas.width/800) * settings.baseScale; } else { settings.scale = (canvas.height/800) * settings.baseScale; } trueCanvas = { width:canvas.width, height:canvas.height }; if (window.devicePixelRatio) { //from https://gist.github.com/joubertnel/870190 var cw = $("#canvas").attr('width'); var ch = $("#canvas").attr('height'); $("#canvas").attr('width', cw * window.devicePixelRatio); $("#canvas").attr('height', ch * window.devicePixelRatio); $("#canvas").css('width', cw); $("#canvas").css('height', ch); trueCanvas = { width:cw, height:ch }; ctx.scale(window.devicePixelRatio, window.devicePixelRatio); } } function toggleDevTools() { $('#devtools').toggle(); } function resumeGame() { gameState = 1; hideUIElements(); $('#pauseBtn').show(); $('#restartBtn').show(); importing = 0; startTime = Date.now(); setTimeout(function(){ if ((gameState == 1 || gameState == 2) && !$('#helpScreen').is(':visible')) { $('.helpText').fadeOut(150, "linear"); } }, 7000); checkVisualElements(); } function checkVisualElements() { if (!$('.helpText').is(":visible")) $('.helpText').fadeIn(150, "linear"); if (!$('#pauseBtn').is(':visible')) $('#pauseBtn').fadeIn(150, "linear"); if (!$('#restartBtn').is(':visible')) $('#restartBtn').fadeIn(150, "linear"); } function hideUIElements() { $('#pauseBtn').hide(); $('#restartBtn').hide(); $('#startBtn').hide(); $("#attributions").hide(); $("#bottombar").hide(); } function init(b) { if (b) { hidebottombar(); if ($('#helpScreen').is(":visible")) { $('#helpScreen').fadeOut(150, "linear"); } checkVisualElements(); setTimeout(function() { $('.helpText').fadeOut(150, "linear"); }, 7000); clearSaveState(); } hideUIElements(); var saveState = localStorage.getItem("saveState") || "{}"; saveState = JSONfn.parse(saveState); document.getElementById("canvas").className = ""; history = {}; importedHistory = undefined; importing = 0; isGameOver = 2; score = saveState.score || 0; prevScore = 0; spawnLane = 0; op = 0; scoreOpacity = 0; gameState = 1; $("#restartBtn").show(); $("#pauseBtn").show(); if(saveState.hex !== undefined) gameState = 1; scaleCanvas(); settings.blockHeight = settings.baseBlockHeight * settings.scale; settings.hexWidth = settings.baseHexWidth * settings.scale; MainHex = saveState.hex || new Hex(settings.hexWidth); if (saveState.hex) { MainHex.playThrough += 1; } MainHex.sideLength = settings.hexWidth; var i; var block; if(saveState.blocks) { saveState.blocks.map(function(o){ if (rgbToHex[o.color]) { o.color = rgbToHex[o.color]; } }); for(i=0; isettings.rows){ return true; } } return false; } function checkGameOver() { for (var i = 0; i < MainHex.sides; i++) { if (isInfringing(MainHex)) { gameOverDisplay(); return true; } } return false; } function showHelp(){ if (gameState == 1 || gameState == 2) { pause(); } $('#helpScreen').fadeToggle(150, "linear"); }