78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html>
 | |
|     <head>
 | |
|         <title>Hex Builder</title>
 | |
|         <style>
 | |
|          body {
 | |
|              margin: 0;
 | |
|              background-color: #fffffe;
 | |
|          }
 | |
| 
 | |
|          #game-canvas {
 | |
|              position: absolute;
 | |
|              width: 100%;
 | |
|              height: 100%;
 | |
|          }
 | |
|         </style>
 | |
|     </head>
 | |
|     <body>
 | |
|         <canvas id="game-canvas" width="800" height="600"></canvas>
 | |
|         <script>
 | |
|          const canvas = document.getElementById("game-canvas");
 | |
|          const ctx = canvas.getContext("2d");
 | |
| 
 | |
|          const hex_radius = 30;
 | |
|          const hex_height = Math.sqrt(3) * hex_radius;
 | |
| 
 | |
|          canvas.width = document.documentElement.clientWidth;
 | |
|          canvas.height = document.documentElement.clientHeight;
 | |
| 
 | |
|          ctx.fillStyle = "rgb(200 200 255)";
 | |
|          ctx.fillRect(0, 0, canvas.width, canvas.height);
 | |
| 
 | |
|          const draw_half_hex = (center_x, center_y) => {
 | |
|              var x0 = center_x - hex_radius;
 | |
|              var y0 = center_y;
 | |
|              var x1 = x0 + hex_radius / 2;
 | |
|              var y1 = y0 - hex_height / 2;
 | |
|              var x2 = x1 + hex_radius;
 | |
|              var y2 = y1;
 | |
|              var x3 = center_x + hex_radius;
 | |
|              var y3 = center_y;
 | |
| 
 | |
|              ctx.beginPath();
 | |
|              ctx.moveTo(x0, y0);
 | |
|              ctx.lineTo(x1, y1);
 | |
|              ctx.lineTo(x2, y2);
 | |
|              ctx.lineTo(x3, y3);
 | |
|              ctx.stroke();
 | |
|          };
 | |
| 
 | |
|          const draw_grid = (pan_x, pan_y) => {
 | |
|              var x = 0;
 | |
|              var y = 0;
 | |
|              var line = 0;
 | |
| 
 | |
|              ctx.strokeStyle = "rgb(255 255 255)";
 | |
| 
 | |
|              while (y < canvas.height) {
 | |
|                  x = (line % 2 == 0) ? 0 : 1.5 * hex_radius;
 | |
| 
 | |
|                  while (x < canvas.width) {
 | |
|                      draw_half_hex(x, y);
 | |
| 
 | |
|                      x += 3 * hex_radius;
 | |
|                  }
 | |
| 
 | |
|                  y += hex_height / 2;
 | |
|                  line += 1;
 | |
|              }
 | |
| 
 | |
|              console.log("Grid done");
 | |
|          };
 | |
| 
 | |
|          draw_grid(0, 0);
 | |
|         </script>
 | |
|     </body>
 | |
| </html>
 |