UNPKG

obelisk-browserify

Version:

Browserify-compatible fork of obelisk.js, hopefully temporary

52 lines (47 loc) 2.02 kB
var WIDTH = 64; var HEIGHT = 28; var img = document.getElementById('animation'); var ctx = document.createElement('canvas').getContext("2d"); var canvas = document.getElementById('canvas-uncle'); var stack = []; var size = 8; var point = new obelisk.Point(50, 120); var pixelView = new obelisk.PixelView(canvas, point); function draw() { ctx.drawImage(img, 0, 0, WIDTH, HEIGHT); var imgData = ctx.getImageData(0, 0, WIDTH, HEIGHT); pixelView.clear(); for (var y = HEIGHT - 1; y >= 0; y--) { for (var x = 0; x < WIDTH - 1; x++) { var pixelColor = obelisk.CanvasTool.getPixel(imgData, x, y); if (pixelColor !== 0xFFFFFF) { var cube; var flag = false; for (var i in stack) { if (stack[i][1] === pixelColor) { cube = stack[i][0]; flag = true; break; } } if (!flag) { var fixedColor = obelisk.ColorGeom.applyBrightness(pixelColor, 50) var color = new obelisk.CubeColor().getByHorizontalColor(fixedColor); var dimension = new obelisk.CubeDimension(size, size + 2, size); cube = new obelisk.Cube(dimension, color, false); stack.push([cube, pixelColor]); } var p3d = new obelisk.Point3D(x * (size - 2), 0, (HEIGHT - 1 - y) * (size)); pixelView.renderObject(cube, p3d); } } } } // render interval window.setInterval(draw, 50); // build floor var canvasFloor = document.getElementById('canvas-floor'); var pixelViewFloor = new obelisk.PixelView(canvasFloor, point); var floorDimension = new obelisk.CubeDimension((size - 2) * (WIDTH + 2), (size - 2) * 9, size); var floor = new obelisk.Cube(floorDimension, new obelisk.CubeColor(), false); pixelViewFloor.renderObject(floor, new obelisk.Point3D(-20, -30, 0));