Path: blob/main/public/games/files/hextris/js/render.js
1036 views
function render() {1var grey = '#bdc3c7';2if (gameState === 0) {3grey = "rgb(220, 223, 225)";4}56ctx.clearRect(0, 0, trueCanvas.width, trueCanvas.height);7clearGameBoard();8if (gameState === 1 || gameState === 2 || gameState === -1 || gameState === 0) {9if (op < 1) {10op += 0.01;11}12ctx.globalAlpha = op;13drawPolygon(trueCanvas.width / 2 , trueCanvas.height / 2 , 6, (settings.rows * settings.blockHeight) * (2/Math.sqrt(3)) + settings.hexWidth, 30, grey, false,6);14drawTimer();15ctx.globalAlpha = 1;16}1718var i;19for (i = 0; i < MainHex.blocks.length; i++) {20for (var j = 0; j < MainHex.blocks[i].length; j++) {21var block = MainHex.blocks[i][j];22block.draw(true, j);23}24}25for (i = 0; i < blocks.length; i++) {26blocks[i].draw();27}2829MainHex.draw();30if (gameState ==1 || gameState ==-1 || gameState === 0) {31drawScoreboard();32}3334for (i = 0; i < MainHex.texts.length; i++) {35var alive = MainHex.texts[i].draw();36if(!alive){37MainHex.texts.splice(i,1);38i--;39}40}4142if ((MainHex.ct < 650 && (gameState !== 0) && !MainHex.playThrough)) {43if (MainHex.ct > (650 - 50)) {44ctx.globalAlpha = (50 - (MainHex.ct - (650 - 50)))/50;45}4647if (MainHex.ct < 50) {48ctx.globalAlpha = (MainHex.ct)/50;49}5051renderBeginningText();52ctx.globalAlpha = 1;53}5455if (gameState == -1) {56ctx.globalAlpha = 0.9;57ctx.fillStyle = 'rgb(236,240,241)';58ctx.fillRect(0, 0, trueCanvas.width, trueCanvas.height);59ctx.globalAlpha = 1;60}6162settings.prevScale = settings.scale;63settings.hexWidth = settings.baseHexWidth * settings.scale;64settings.blockHeight = settings.baseBlockHeight * settings.scale;65}6667function renderBeginningText() {68var upperheight = (trueCanvas.height/2) - ((settings.rows * settings.blockHeight) * (2/Math.sqrt(3))) * (5/6);69var lowerheight = (trueCanvas.height/2) + ((settings.rows * settings.blockHeight) * (2/Math.sqrt(3))) * (11/16);70var text = '';71var mob, fontSize;72if(/mobile|Mobile|iOS|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {73mob = true;74input_text = 'Tap the screen\'s left and right'75action_text = 'sides to rotate the hexagon'76score_text = 'Match 3+ blocks to score'77fontSize = 3578} else {79mob = false80input_text = 'Use the right and left arrow keys'81action_text = 'to rotate the hexagon'82score_text = 'Match 3+ blocks to score!'83fontSize = 2784}85renderText((trueCanvas.width)/2 + 2 * settings.scale,upperheight-0*settings.scale, fontSize, '#2c3e50', input_text);86renderText((trueCanvas.width)/2 + 2 * settings.scale,upperheight+33*settings.scale, fontSize, '#2c3e50', action_text);87if (!mob) {88drawKey("",(trueCanvas.width)/2 + 2 * settings.scale-2.5,upperheight+38*settings.scale);89}9091renderText((trueCanvas.width)/2 + 2 * settings.scale,lowerheight,fontSize, '#2c3e50', score_text);92}9394function drawKey(key, x, y) {95ctx.save();96switch (key) {97case "left":98ctx.translate(x, y + settings.scale * 13);99ctx.rotate(3.14159);100ctx.font = "20px Fontawesome";101ctx.scale(settings.scale, settings.scale);102ctx.fillText(String.fromCharCode("0xf04b"), 0, 0);103break;104case "right":105ctx.font = "20px Fontawesome";106ctx.translate(x , y + settings.scale * 27.5);107ctx.scale(settings.scale, settings.scale);108ctx.fillText(String.fromCharCode("0xf04b"), 0, 0);109break;110111default:112drawKey("left", x - 5, y);113drawKey("right", x + 5, y);114}115ctx.restore();116}117118119