Endless Roller
Three js endless runner example
by neonDog
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/86/three.min.js"></script>
<div id="TutContainer"></div>
JavaScript
var sceneWidth;
var sceneHeight;
var camera;
var scene;
var renderer;
var dom;
var sun;
var ground;
//var orbitControl;
var rollingGroundSphere;
var heroSphere;
var rollingSpeed=0.008;
var heroRollingSpeed;
var worldRadius=26;
var heroRadius=0.2;
var sphericalHelper;
var pathAngleValues;
var heroBaseY=1.8;
var bounceValue=0.1;
var gravity=0.005;
var leftLane=-1;
var rightLane=1;
var middleLane=0;
var currentLane;
var clock;
var jumping;
var treeReleaseInterval=0.5;
var lastTreeReleaseTime=0;
var treesInPath;
var treesPool;
var particleGeometry;
var particleCount=20;
var explosionPower =1.06;
var particles;
//var stats;
var scoreText;
var score;
var hasCollided;
init();
function init() {
// set up the scene
createScene();
//call game loop
update();
}
function createScene(){
hasCollided=false;
score=0;
treesInPath=[];
treesPool=[];
clock=new THREE.Clock();
clock.start();
heroRollingSpeed=(rollingSpeed*worldRadius/heroRadius)/5;
sphericalHelper = new THREE.Spherical();
pathAngleValues=[1.52,1.57,1.62];
sceneWidth=window.innerWidth;
sceneHeight=window.innerHeight;
scene = new THREE.Scene();//the 3d scene
scene.fog = new THREE.FogExp2( 0xf0fff0, 0.14 );
camera = new THREE.PerspectiveCamera( 60, sceneWidth / sceneHeight, 0.1, 1000 );//perspective camera
renderer = new THREE.WebGLRenderer({alpha:true});//renderer with transparent backdrop
renderer.setClearColor(0xfffafa, 1);
renderer.shadowMap.enabled = true;//enable shadow
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
renderer.setSize( sceneWidth, sceneHeight );
dom = document.getElementById('TutContainer');
dom.appendChild(renderer.domElement);
//stats = new Stats();
//dom.appendChild(stats.dom);
createTreesPool();
addWorld();
addHero();
addLight();
addExplosion();
camera.position.z = 6.5;
camera.position.y = 2.5;
/*orbitControl = new THREE.OrbitControls( camera, renderer.domElement );//helper to rotate around in...