/* * 3D Artwig chess set * @JulianGarnier * * Licensed under the MIT license. * Copyright 2012 Julian Garnier */ var chess = new Chess(); var currentColor = chess.turn(); var turn = 0; var timeOut = null; var photon = document.getElementsByClassName("photon-shader"); var sphere = document.getElementsByClassName("sphere"); var piece = document.getElementsByClassName("piece"); var square = document.getElementsByClassName("square"); var app = document.getElementById("app"); var scene = document.getElementById("scene"); var sceneX = 70; var sceneY = 90; var controls = false; var animated = false; var mouseDown = false; var closestElement = null; var white = "White"; var black = "Black"; function checkTouch() { var d = document.createElement("div"); d.setAttribute("ontouchmove", "return;"); return typeof d.ontouchmove === "function" ? true : false; } if(checkTouch()) { var press = "touchstart"; var drag = "touchmove"; var drop = "touchend"; } else { var press = "mousedown"; var drag = "mousemove"; var drop = "mouseup"; } function initControls() { for(var i=0; i elementRight) { xPosition = squareLeft - elementRight; } if(squareBottom < elementTop) { yPosition = elementTop - squareBottom; } else if(squareTop > elementBottom) { yPosition = squareTop - elementBottom; } var valueForComparison = 0; if(xPosition > yPosition) { valueForComparison = xPosition; } else { valueForComparison = yPosition; } if(smallestDistance === null) { smallestDistance = valueForComparison; closestElement = square[i]; } else if(valueForComparison < smallestDistance) { smallestDistance = valueForComparison; closestElement = square[i]; } } for(var i = 0; i < square.length; i++) { square[i].classList.remove("highlight"); } closestElement.classList.add("highlight"); targetX = closestElement.offsetLeft; targetY = closestElement.offsetTop; } function updateView(sceneXAngle,sceneZAngle) { scene.style.webkitTransform = "rotateX( " + sceneXAngle + "deg) rotateZ( " + sceneZAngle + "deg)"; for(var i=0; i