Skip to content

Instantly share code, notes, and snippets.

@srajagop
Created June 21, 2015 00:35
Show Gist options
  • Save srajagop/2cf0c85c51d9819ca736 to your computer and use it in GitHub Desktop.
Save srajagop/2cf0c85c51d9819ca736 to your computer and use it in GitHub Desktop.
Isometric game grid
<div class="grid"></div>
<div class="controls">
<p><label>x: <input class="input-x" type="number" size="2" min="1" max="30" value="15" /></label></p>
<p><label>y: <input class="input-y" type="number" size="2" min="1" max="30" value="15" /></label></p>
<p><label>z: <input class="input-z" type="number" size="2" min="1" max="30" value="15" /></label></p>
<p><button class="input-button">Generate</button></p>
</div>
<div class="controls-tiles controls"><div class="img"></div></div>
<p class="twitter-link">
<a href="https://twitter.com/tayokoart" target="_blank">@tayokoart</a>
</p>
// Crappy "sketch" code.
function Isometry(xLen, yLen, zLen) {
this.xLen = xLen;
this.yLen = yLen;
this.zLen = zLen;
this.cellWidth = 32;
this.cellHeight = 32;
this.height = ((this.cellHeight / 2) * (this.zLen)) + (this.cellHeight / 4) * (this.xLen + this.yLen);
this.width = (this.cellWidth / 2) * (this.xLen + this.yLen);
this.calcPos = function(x,y,z) {
var maxYPos = ((this.xLen - 1) * this.cellHeight / 4) + (this.cellWidth / 2) * (this.zLen -1),
pos = new Array();
pos["x"] = (x * this.cellWidth / 2) + (y * this.cellWidth / 2); //x
pos["y"] = (y * this.cellHeight / 4) - (x * this.cellHeight / 4); //y
pos["y"] = pos["y"] - (this.cellWidth / 2) * z; //z
pos["y"] = pos["y"] + maxYPos; //global offset
pos["z"] = this.xLen - x; // z-index
return pos;
};
this.drawSquare = function(xLen, yLen, zLen) {
var elementString = '';
for (var z = 0; z <= zLen - 1; z++) {
for (var x = 0; x <= xLen - 1; x++) {
for (var y = 0; y <= yLen - 1; y++) {
var pos = this.calcPos(x,y,z);
elementString = elementString + '<div class="cell" style="left:' + pos['x'] + 'px; top:' + pos['y'] + 'px; z-index:' + pos['z'] + ';" data-coord="z:' + z + ' x:' + x + ' y:' + y + '"></div>';
};
};
};
this.renderGrid(elementString);
};
this.addCell = function(x,y,z) {
var pos = this.calcPos(x,y,z),
elementString = '<div class="cell" style="left:' + pos['x'] + 'px; top:' + pos['y'] + 'px; z-index:' + pos['z'] + ';" data-coord="z:' + z + ' x:' + x + ' y:' + y + '"></div>';
$('.grid').append(elementString);
};
this.renderGrid = function(elementString) {
$('.grid')
.width(this.width)
.height(this.height)
.html(elementString);
$('.cell').click(function(e){
e.preventDefault;
$(this).fadeOut();
});
}
this.drawSquare(xLen, yLen, zLen);
}
$(document).ready(function(){
var cube = new Isometry(15,15,15);
$('.input-button').click(function(e){
var x = $('.input-x').val(),
y = $('.input-y').val(),
z = $('.input-z').val();
cube.drawSquare(x, y, z);
});
});
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
@import "compass/css3";
// Crappy "sketch" code.
.grid {
position: relative;
margin: 2em auto;
z-index: 1;
}
.grid .cell {
position: absolute;
display: block;
width: 2em;
height: 2em;
background-image: url('https://raw.githubusercontent.com/miguel-perez/Isometry/master/img/mockboxes.png');
background-position: 256px 0;
background-repeat: none;
}
.grid .cell:hover {
background-position: 192px 0;
cursor: pointer;
}
.controls {
position: absolute;
left: 1em;
top: 1em;
padding: 1em;
background-color: #eee;
border: 1px solid #999;
border-bottom-width: 2px;
z-index: 2;
}
.twitter-link {
position: absolute;
bottom: 1em;
left: 1em;
}
.controls-tiles {
bottom: 1em;
right: 1em;
top: auto;
left: auto;
.img {
display: block;
height: 100px;
width: 320px;
}
}
.input-button {
cursor: pointer;
}
.grid .cell,
.controls-tiles .img {
background-image: url(data:image/png;base64,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);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment