Commit e4b19addcb569ca8bc20b1e5ca5eed3b3c2e5797
1 parent
edd1185c
really remove game of life from javascript
Showing
2 changed files
with
2 additions
and
81 deletions
| @@ -19,7 +19,6 @@ | @@ -19,7 +19,6 @@ | ||
| 19 | </head> | 19 | </head> |
| 20 | <body> | 20 | <body> |
| 21 | <canvas id="view3d"></canvas> | 21 | <canvas id="view3d"></canvas> |
| 22 | - <canvas id="game-of-life-canvas"></canvas> | ||
| 23 | <script src="./bootstrap.js"></script> | 22 | <script src="./bootstrap.js"></script> |
| 24 | </body> | 23 | </body> |
| 25 | </html> | 24 | </html> |
| 1 | -import { Universe, Cell, View3d, Color } from "wasm-game-of-life"; | 1 | +import { View3d } from "wasm-game-of-life"; |
| 2 | import { memory } from "wasm-game-of-life/wasm_game_of_life_bg"; | 2 | import { memory } from "wasm-game-of-life/wasm_game_of_life_bg"; |
| 3 | 3 | ||
| 4 | // 3D canvas stuff | 4 | // 3D canvas stuff |
| 5 | -const view3d = View3d.new(151, 151); | 5 | +const view3d = View3d.new(300, 300); |
| 6 | 6 | ||
| 7 | const view3d_canvas = document.getElementById("view3d"); | 7 | const view3d_canvas = document.getElementById("view3d"); |
| 8 | view3d_canvas.width = view3d.width(); | 8 | view3d_canvas.width = view3d.width(); |
| @@ -28,85 +28,7 @@ const drawView3d = () => { | @@ -28,85 +28,7 @@ const drawView3d = () => { | ||
| 28 | view3d_ctx.putImageData(view3d_image, 0, 0); | 28 | view3d_ctx.putImageData(view3d_image, 0, 0); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | -// game of life stuff | ||
| 32 | -const CELL_SIZE = 5; // px | ||
| 33 | -const GRID_COLOR = "#CCCCCC"; | ||
| 34 | -const DEAD_COLOR = "#FFFFFF"; | ||
| 35 | -const ALIVE_COLOR = "#000000"; | ||
| 36 | - | ||
| 37 | -const universe = Universe.new(); | ||
| 38 | -const width = universe.width(); | ||
| 39 | -const height = universe.height(); | ||
| 40 | - | ||
| 41 | -const canvas = document.getElementById("game-of-life-canvas"); | ||
| 42 | -canvas.height = (CELL_SIZE + 1) * height + 1; | ||
| 43 | -canvas.width = (CELL_SIZE + 1) * width + 1; | ||
| 44 | - | ||
| 45 | -const ctx = canvas.getContext('2d'); | ||
| 46 | - | ||
| 47 | -const renderLoop = () => { | ||
| 48 | - universe.tick(); | ||
| 49 | - | ||
| 50 | - drawGrid(); | ||
| 51 | - drawCells(); | ||
| 52 | - | ||
| 53 | - requestAnimationFrame(renderLoop); | ||
| 54 | -}; | ||
| 55 | - | ||
| 56 | -const drawGrid = () => { | ||
| 57 | - ctx.beginPath(); | ||
| 58 | - ctx.strokeStyle = GRID_COLOR; | ||
| 59 | - | ||
| 60 | - // vertical lines. | ||
| 61 | - for (let i = 0; i <= width; i++) { | ||
| 62 | - ctx.moveTo(i * (CELL_SIZE + 1) + 1, 0); | ||
| 63 | - ctx.lineTo(i * (CELL_SIZE + 1) + 1, (CELL_SIZE + 1) * height + 1); | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - // horizontal lines. | ||
| 67 | - for (let j = 0; j <= height; j++) { | ||
| 68 | - ctx.moveTo( 0, j * (CELL_SIZE + 1) + 1); | ||
| 69 | - ctx.lineTo((CELL_SIZE + 1) * width + 1, j * (CELL_SIZE + 1) + 1); | ||
| 70 | - } | ||
| 71 | - | ||
| 72 | - ctx.stroke(); | ||
| 73 | -}; | ||
| 74 | - | ||
| 75 | -const getIndex = (row, col) => { | ||
| 76 | - return row * width + col; | ||
| 77 | -}; | ||
| 78 | - | ||
| 79 | -const drawCells = () => { | ||
| 80 | - const cellsPtr = universe.cells() | ||
| 81 | - const cells = new Uint8Array(memory.buffer, cellsPtr, width * height); | ||
| 82 | - | ||
| 83 | - ctx.beginPath(); | ||
| 84 | - | ||
| 85 | - for (let row = 0; row < height; row++) { | ||
| 86 | - for (let col = 0; col < height; col++) { | ||
| 87 | - const idx = getIndex(row, col); | ||
| 88 | - | ||
| 89 | - ctx.fillStyle = cells[idx] === Cell.Dead | ||
| 90 | - ? DEAD_COLOR | ||
| 91 | - : ALIVE_COLOR; | ||
| 92 | - | ||
| 93 | - ctx.fillRect( | ||
| 94 | - col * (CELL_SIZE + 1) + 1, | ||
| 95 | - row * (CELL_SIZE + 1) + 1, | ||
| 96 | - CELL_SIZE, | ||
| 97 | - CELL_SIZE | ||
| 98 | - ); | ||
| 99 | - } | ||
| 100 | - } | ||
| 101 | - | ||
| 102 | - ctx.stroke(); | ||
| 103 | -}; | ||
| 104 | - | ||
| 105 | // start everything ... | 31 | // start everything ... |
| 106 | -//drawGrid(); | ||
| 107 | -//drawCells(); | ||
| 108 | -//requestAnimationFrame(renderLoop); | ||
| 109 | - | ||
| 110 | view3d.update(); | 32 | view3d.update(); |
| 111 | drawView3d(); | 33 | drawView3d(); |
| 112 | requestAnimationFrame(view3d_renderLoop); | 34 | requestAnimationFrame(view3d_renderLoop); |
Please
register
or
login
to post a comment