mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 15:09:34 +02:00
finish rack and add to master script, reorganize all bball related scripts
This commit is contained in:
parent
152fdb8112
commit
5f2112b8a5
4 changed files with 104 additions and 7 deletions
|
@ -5,7 +5,6 @@
|
||||||
// Copyright 2015 High Fidelity, Inc.
|
// Copyright 2015 High Fidelity, Inc.
|
||||||
//
|
//
|
||||||
// This is a script that creates a persistent basketball hoop with a working collision hull. Feel free to move it.
|
// This is a script that creates a persistent basketball hoop with a working collision hull. Feel free to move it.
|
||||||
// Run basketball.js to make a basketball.
|
|
||||||
//
|
//
|
||||||
// Distributed under the Apache License, Version 2.0.
|
// Distributed under the Apache License, Version 2.0.
|
||||||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
@ -17,7 +17,6 @@ var basketballURL = HIFI_PUBLIC_BUCKET + "models/content/basketball2.fbx";
|
||||||
var collisionSoundURL = HIFI_PUBLIC_BUCKET + "sounds/basketball/basketball.wav";
|
var collisionSoundURL = HIFI_PUBLIC_BUCKET + "sounds/basketball/basketball.wav";
|
||||||
var rackURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/basketball_rack.fbx";
|
var rackURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/basketball_rack.fbx";
|
||||||
var rackCollisionHullURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/rack_collision_hull.obj";
|
var rackCollisionHullURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/rack_collision_hull.obj";
|
||||||
var basketballSwitcherURL = Script.resolvePath('basketballSwitcher.js');
|
|
||||||
|
|
||||||
var NUMBER_OF_BALLS = 4;
|
var NUMBER_OF_BALLS = 4;
|
||||||
var DIAMETER = 0.30;
|
var DIAMETER = 0.30;
|
||||||
|
@ -33,7 +32,7 @@ var rackStartPosition =
|
||||||
}));
|
}));
|
||||||
|
|
||||||
var rack = Entities.addEntity({
|
var rack = Entities.addEntity({
|
||||||
name:'Basketball Rack',
|
name: 'Basketball Rack',
|
||||||
type: "Model",
|
type: "Model",
|
||||||
modelURL: rackURL,
|
modelURL: rackURL,
|
||||||
position: rackStartPosition,
|
position: rackStartPosition,
|
||||||
|
@ -43,7 +42,7 @@ var rack = Entities.addEntity({
|
||||||
y: -9.8,
|
y: -9.8,
|
||||||
z: 0
|
z: 0
|
||||||
},
|
},
|
||||||
linearDamping:1,
|
linearDamping: 1,
|
||||||
dimensions: {
|
dimensions: {
|
||||||
x: 0.4,
|
x: 0.4,
|
||||||
y: 1.37,
|
y: 1.37,
|
||||||
|
@ -51,6 +50,7 @@ var rack = Entities.addEntity({
|
||||||
},
|
},
|
||||||
collisionsWillMove: true,
|
collisionsWillMove: true,
|
||||||
ignoreForCollisions: false,
|
ignoreForCollisions: false,
|
||||||
|
collisionSoundURL: collisionSoundURL,
|
||||||
compoundShapeURL: rackCollisionHullURL
|
compoundShapeURL: rackCollisionHullURL
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//
|
//
|
||||||
// basketball.js
|
// createSingleBasketball.js
|
||||||
// examples
|
// examples
|
||||||
//
|
//
|
||||||
// Created by Philip Rosedale on August 20, 2015
|
// Created by Philip Rosedale on August 20, 2015
|
|
@ -85,6 +85,8 @@ function createAllToys() {
|
||||||
|
|
||||||
createBasketballHoop();
|
createBasketballHoop();
|
||||||
|
|
||||||
|
createBasketallRack();
|
||||||
|
|
||||||
createGates();
|
createGates();
|
||||||
|
|
||||||
createFire();
|
createFire();
|
||||||
|
@ -98,7 +100,7 @@ function createAllToys() {
|
||||||
function deleteAllToys() {
|
function deleteAllToys() {
|
||||||
var entities = Entities.findEntities(MyAvatar.position, 100);
|
var entities = Entities.findEntities(MyAvatar.position, 100);
|
||||||
|
|
||||||
entities.forEach(function (entity) {
|
entities.forEach(function(entity) {
|
||||||
//params: customKey, id, defaultValue
|
//params: customKey, id, defaultValue
|
||||||
var shouldReset = getEntityCustomData(resetKey, entity, {}).resetMe;
|
var shouldReset = getEntityCustomData(resetKey, entity, {}).resetMe;
|
||||||
if (shouldReset === true) {
|
if (shouldReset === true) {
|
||||||
|
@ -521,6 +523,102 @@ function createBasketballHoop() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createBasketallRack() {
|
||||||
|
var NUMBER_OF_BALLS = 4;
|
||||||
|
var DIAMETER = 0.30;
|
||||||
|
|
||||||
|
var basketballURL = HIFI_PUBLIC_BUCKET + "models/content/basketball2.fbx";
|
||||||
|
var basketballCollisionSoundURL = HIFI_PUBLIC_BUCKET + "sounds/basketball/basketball.wav";
|
||||||
|
var rackURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/basketball_rack.fbx";
|
||||||
|
var rackCollisionHullURL = HIFI_PUBLIC_BUCKET + "models/basketball_hoop/rack_collision_hull.obj";
|
||||||
|
|
||||||
|
var rackRotation = Quat.fromPitchYawRollDegrees(0, -90, 0);
|
||||||
|
|
||||||
|
var rackStartPosition = {
|
||||||
|
x: 542.86,
|
||||||
|
y: 494.84,
|
||||||
|
z: 475.06
|
||||||
|
};
|
||||||
|
var rack = Entities.addEntity({
|
||||||
|
name: 'Basketball Rack',
|
||||||
|
type: "Model",
|
||||||
|
modelURL: rackURL,
|
||||||
|
position: rackStartPosition,
|
||||||
|
rotation: rackRotation,
|
||||||
|
shapeType: 'compound',
|
||||||
|
gravity: {
|
||||||
|
x: 0,
|
||||||
|
y: -9.8,
|
||||||
|
z: 0
|
||||||
|
},
|
||||||
|
linearDamping: 1,
|
||||||
|
dimensions: {
|
||||||
|
x: 0.4,
|
||||||
|
y: 1.37,
|
||||||
|
z: 1.73
|
||||||
|
},
|
||||||
|
collisionsWillMove: true,
|
||||||
|
ignoreForCollisions: false,
|
||||||
|
compoundShapeURL: rackCollisionHullURL
|
||||||
|
});
|
||||||
|
|
||||||
|
setEntityCustomData(resetKey, rack, {
|
||||||
|
resetMe: true
|
||||||
|
});
|
||||||
|
|
||||||
|
setEntityCustomData(GRABBABLE_DATA_KEY, rack, {
|
||||||
|
grabbable: false
|
||||||
|
});
|
||||||
|
|
||||||
|
var collidingBalls = [];
|
||||||
|
|
||||||
|
|
||||||
|
function createCollidingBalls() {
|
||||||
|
var position = rackStartPosition;
|
||||||
|
var i;
|
||||||
|
|
||||||
|
for (i = 0; i < NUMBER_OF_BALLS; i++) {
|
||||||
|
var collidingBall = Entities.addEntity({
|
||||||
|
type: "Model",
|
||||||
|
name: 'Colliding Basketball',
|
||||||
|
shapeType: 'Sphere',
|
||||||
|
position: {
|
||||||
|
x: position.x + (DIAMETER*2) - (DIAMETER * i),
|
||||||
|
y: position.y + DIAMETER * 2,
|
||||||
|
z: position.z
|
||||||
|
},
|
||||||
|
dimensions: {
|
||||||
|
x: DIAMETER,
|
||||||
|
y: DIAMETER,
|
||||||
|
z: DIAMETER
|
||||||
|
},
|
||||||
|
restitution: 1.0,
|
||||||
|
linearDamping: 0.00001,
|
||||||
|
gravity: {
|
||||||
|
x: 0,
|
||||||
|
y: -9.8,
|
||||||
|
z: 0
|
||||||
|
},
|
||||||
|
collisionsWillMove: true,
|
||||||
|
ignoreForCollisions: false,
|
||||||
|
collisionSoundURL: basketballCollisionSoundURL,
|
||||||
|
modelURL: basketballURL,
|
||||||
|
});
|
||||||
|
|
||||||
|
collidingBalls.push(collidingBall);
|
||||||
|
|
||||||
|
setEntityCustomData(resetKey, collidingBall, {
|
||||||
|
resetMe: true
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
createCollidingBalls();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function createWand(position) {
|
function createWand(position) {
|
||||||
var WAND_MODEL = 'http://hifi-public.s3.amazonaws.com/james/bubblewand/models/wand/wand.fbx';
|
var WAND_MODEL = 'http://hifi-public.s3.amazonaws.com/james/bubblewand/models/wand/wand.fbx';
|
||||||
var WAND_COLLISION_SHAPE = 'http://hifi-public.s3.amazonaws.com/james/bubblewand/models/wand/actual_no_top_collision_hull.obj';
|
var WAND_COLLISION_SHAPE = 'http://hifi-public.s3.amazonaws.com/james/bubblewand/models/wand/actual_no_top_collision_hull.obj';
|
||||||
|
@ -831,4 +929,4 @@ function cleanup() {
|
||||||
if (shouldDeleteOnEndScript) {
|
if (shouldDeleteOnEndScript) {
|
||||||
|
|
||||||
Script.scriptEnding.connect(cleanup);
|
Script.scriptEnding.connect(cleanup);
|
||||||
}
|
}
|
Loading…
Reference in a new issue