Skip to content

Instantly share code, notes, and snippets.

@gadtfly
Last active September 7, 2016 08:08
Show Gist options
  • Select an option

  • Save gadtfly/d195f1dcbf42d9964adbf3c83d46ba4e to your computer and use it in GitHub Desktop.

Select an option

Save gadtfly/d195f1dcbf42d9964adbf3c83d46ba4e to your computer and use it in GitHub Desktop.
I was curious about how the different input latencies in TVs I was looking at would manifest in shooter games. This was small result.
<html>
<head>
<style>
body {
cursor: crosshair;
}
.follower{
position: fixed;
font-family: sans-serif;
font-size: 1.5rem;
}
</style>
<script>
var forEachFollower = function(f){
Array.prototype.forEach.call(document.getElementsByClassName('follower'), f);
};
var setFollowerColor = function(element){
var delay = element.dataset.delay;
var r = delay*5;
var g = Math.abs(Math.floor(Math.cos(delay)*100));
var b = Math.abs(Math.floor(Math.sin(delay)*100));
element.style.color = 'rgb('+[r,g,b].join()+')';
};
var updateFollower = function(event, element){
element.style.left = event.x - element.offsetWidth/2;
element.style.top = event.y - element.offsetHeight/2;
};
var scheduleFollowerUpdate = function(event, element){
window.setTimeout(updateFollower, element.dataset.delay, event, element);
}
var mouseMoved = function(event){
forEachFollower(function(element){
scheduleFollowerUpdate(event, element);
});
};
var onLoad = function(){
forEachFollower(setFollowerColor);
document.addEventListener('mousemove', mouseMoved);
}
document.addEventListener('DOMContentLoaded', onLoad);
</script>
</head>
<body>
<div class='follower' data-delay='0'>+</div>
<div class='follower' data-delay='15'>+</div>
<div class='follower' data-delay='50'>+</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment