UNPKG

obelisk.js

Version:

JavaScript Library for Building Pixel Isometric Element with HTML5 Canvas

64 lines (47 loc) 1.95 kB
var canvas = document.getElementById('canvas-demo'); // translate context to center of canvas var ctx = canvas.getContext('2d'); var point = new obelisk.Point(0, 0); var pixelView = new obelisk.PixelView(canvas, point); function buildCube(xDimension, yDimension, zDimension, border, pixelScale) { ctx.save(); var color = new obelisk.CubeColor().getByHorizontalColor(obelisk.ColorPattern.GRASS_GREEN); var dimension = new obelisk.CubeDimension(xDimension, yDimension, zDimension); var cube = new obelisk.Cube(dimension, color, border); pixelView.clear(); ctx.translate(Math.floor(canvas.width / 2), Math.floor(canvas.height / 2)); ctx.scale(pixelScale, pixelScale); pixelView.renderObject(cube); ctx.restore(); } // control bar var ControlBar = function () { this.pixelScale = 1; this.xDimension = 80; this.yDimension = 120; this.zDimension = 50; this.border = true; }; var con = new ControlBar(); var gui = new dat.GUI(); var conScale = gui.add(con, 'pixelScale', 1, 8).step(1); conScale.onChange(function (value) { buildCube(con.xDimension, con.yDimension, con.zDimension, con.border, value); }); var conX = gui.add(con, 'xDimension', 6, 400).step(2); conX.onChange(function (value) { buildCube(value, con.yDimension, con.zDimension, con.border, con.pixelScale); }); var conY = gui.add(con, 'yDimension', 6, 400).step(2); conY.onChange(function (value) { buildCube(con.xDimension, value, con.zDimension, con.border, con.pixelScale); }); var conZ = gui.add(con, 'zDimension', 6, 400).step(2); conZ.onChange(function (value) { buildCube(con.xDimension, con.yDimension, value, con.border, con.pixelScale); }); var conBorder = gui.add(con, 'border'); conBorder.onChange(function (value) { buildCube(con.xDimension, con.yDimension, con.zDimension, value, con.pixelScale); }); buildCube(con.xDimension, con.yDimension, con.zDimension, con.border, con.pixelScale);