function World()
{
var scene = new THREE.Scene();
var sky = new THREE.TextureLoader().load("uploads/moe93/sky.png");
keyboard = {};
scene.background = sky;
var torender = new THREE.WebGLRenderer();
function webgl() {
torender.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(torender.domElement);
}
function make_ground() {
var texture = new THREE.TextureLoader().load( 'uploads/moe93/ground.jpg' );
floor = new THREE.Mesh(
new THREE.PlaneGeometry(100,300),
new THREE.MeshBasicMaterial({map:texture}));
floor.rotation.x -= Math.PI / 2;
scene.add(floor);
}
var camera;
function make_cam() {
camera = new THREE.PerspectiveCamera(100, window.innerWidth/window.innerHeight, 0.1, 1000);
camera.position.set(0, 5, 2);
// camera.lookAt(scene.position);
}
function make_player() {
var box = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshBasicMaterial({color:0x33de66});
player = new THREE.Mesh(box, material)
player.position.set(0, 4, 0);
scene.add(player)
}
keyboard = {}
window.addEventListener('keydown', down);
window.addEventListener('keyup', up);
function down(event) {
keyboard[event.keyCode] = true;
}
function up(event) {
keyboard[event.keyCode] = false;
}
function move_player() {
requestAnimationFrame(move_player);
if (keyboard[65]) {
player.position.x = player.position.x - Math.sin(player.rotation.y + Math.PI / 2) * 0.5
}
if (keyboard[68]) {
player.position.x = player.position.x + Math.sin(player.rotation.y + Math.PI / 2) * 0.5
}
camera.position.x = player.position.x;
camera.position.y = 5;
torender.render(scene, camera)
}
fruits = []
function make_fruit() {
for(i = 0; i < 10; i++)
{
var which_fruit = AB.randomIntAtoB(1,5)
var box = new THREE.BoxGeometry(3,3,3)
var texture_load = new THREE.TextureLoader()
texture_load.setPath("/uploads/moe93/")
if (which_fruit == 1) {
texture = texture_load.load("orange.png")
}
else if (which_fruit == 2) {
texture = texture_load.load("melon.png")
}
else if (which_fruit == 3) {
texture = texture_load.load("banana.png")
}
else if (which_fruit == 4) {
texture = texture_load.load("pineapple.png")
}
else if (which_fruit == 5) {
texture = texture_load.load("apple.png")
}
var material = new THREE.MeshBasicMaterial({map:texture})
fruit = new THREE.Mesh(box, material)
fruit.position.x += AB.randomIntAtoB(-45,45);
fruit.position.z = AB.randomIntAtoB(-70, -140)
fruit.position.y = 2;
fruits.push(fruit)
scene.add(fruit);
}
console.log(fruit)
}
function am_i_eaten() {
var difference_x = Math.abs(parseInt(player.position.x - fruit.position.x));
var difference_z = Math.abs(parseInt(player.position.z - fruit.position.z));
if (difference_x <= 1 && difference_z <= 1) {
return true
}
else {
return false
}
}
var score_counter = 0;
var fruit;
function move_fruit() {
requestAnimationFrame(move_fruit)
pick_fruit = AB.randomIntAtoB(1, fruits.length)
fruit = fruits[pick_fruit]
if (fruit.position.z < (player.position.z + 15)) {
fruit.position.z += 1;
if(am_i_eaten())
{
score_counter += 1
}
}
}
var page = document.getElementById("ab-threepage");
var myscore = document.createElement("p");
var player2 = document.createElement("p");
function score() {
myscore.style = "font-size:25px; color:white; text-align:center;"
player2.style = "font-size:25px; color:white; text-align:center;"
myscore.innerHTML = "My Score is " + score_counter
player2.innerHTML = "Player 2 Score is " + player_2
page.appendChild(myscore)
page.appendChild(player2)
}
function update_score() {
myscore.innerHTML = "My Score is " + score_counter
}
var player_2 = 0
function make_socket() {
AB.socketIn = function (score) {
player_2 = score
}
if (AB.socket) {
if (AB.socket.connected) {
AB.socketOut(score_counter)
}
}
}
this.newRun = function()
{
webgl();
make_player();
make_cam();
make_ground();
move_player();
make_fruit();
move_fruit();
score();
make_socket();
}
this.nextRun = function()
{
move_fruit();
update_score();
socket();
}
}