Merge branch 'wall_targets_2' into invert_solids

This commit is contained in:
James B. Pollack 2015-10-13 10:15:48 -07:00
commit 0f2ad8dd49
3 changed files with 1255 additions and 1230 deletions

View file

@ -16,8 +16,9 @@ var scriptURL = Script.resolvePath('wallTarget.js');
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx'; var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj'; var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
var MINIMUM_MOVE_LENGTH = 0.05;
var RESET_DISTANCE = 0.5;
var RESET_DISTANCE = 1;
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target'; var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
var NUMBER_OF_TARGETS = 6; var NUMBER_OF_TARGETS = 6;
var TARGETS_PER_ROW = 3; var TARGETS_PER_ROW = 3;
@ -60,6 +61,8 @@ var targets = [];
var originalPositions = []; var originalPositions = [];
var lastPositions = [];
function addTargets() { function addTargets() {
var i; var i;
var row = -1; var row = -1;
@ -77,6 +80,7 @@ function addTargets() {
position.y = startPosition.y - (row * VERTICAL_SPACING); position.y = startPosition.y - (row * VERTICAL_SPACING);
originalPositions.push(position); originalPositions.push(position);
lastPositions.push(position);
var targetProperties = { var targetProperties = {
name: 'Target', name: 'Target',
@ -103,7 +107,11 @@ function testTargetDistanceFromStart() {
var distance = Vec3.subtract(originalPosition, currentPosition); var distance = Vec3.subtract(originalPosition, currentPosition);
var length = Vec3.length(distance); var length = Vec3.length(distance);
if (length > RESET_DISTANCE) { var moving = Vec3.length(Vec3.subtract(currentPosition, lastPositions[index]));
lastPositions[index] = currentPosition;
if (length > RESET_DISTANCE && moving < MINIMUM_MOVE_LENGTH) {
Entities.deleteEntity(target); Entities.deleteEntity(target);
@ -117,10 +125,16 @@ function testTargetDistanceFromStart() {
compoundShapeURL: COLLISION_HULL_URL, compoundShapeURL: COLLISION_HULL_URL,
position: originalPositions[index], position: originalPositions[index],
rotation: rotation, rotation: rotation,
script: scriptURL script: scriptURL,
userData: JSON.stringify({
grabbableKey: {
grabbable: false
}
})
}; };
targets[index] = Entities.addEntity(targetProperties); targets[index] = Entities.addEntity(targetProperties);
} }
}); });
} }
@ -142,7 +156,7 @@ function deleteTargets() {
} }
Entities.deletingEntity.connect(deleteEntity); Entities.deletingEntity.connect(deleteEntity);
var distanceCheckInterval = Script.setInterval(testTargetDistanceFromStart, 1000); var distanceCheckInterval = Script.setInterval(testTargetDistanceFromStart, 500);
addTargets(); addTargets();

View file

@ -378,7 +378,8 @@
var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx'; var MODEL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target.fbx';
var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj'; var COLLISION_HULL_URL = 'http://hifi-public.s3.amazonaws.com/models/ping_pong_gun/target_collision_hull.obj';
var RESET_DISTANCE = 1; var MINIMUM_MOVE_LENGTH = 0.05;
var RESET_DISTANCE = 0.5;
var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target'; var TARGET_USER_DATA_KEY = 'hifi-ping_pong_target';
var NUMBER_OF_TARGETS = 6; var NUMBER_OF_TARGETS = 6;
var TARGETS_PER_ROW = 3; var TARGETS_PER_ROW = 3;
@ -392,7 +393,6 @@
var VERTICAL_SPACING = TARGET_DIMENSIONS.y + 0.5; var VERTICAL_SPACING = TARGET_DIMENSIONS.y + 0.5;
var HORIZONTAL_SPACING = TARGET_DIMENSIONS.z + 0.5; var HORIZONTAL_SPACING = TARGET_DIMENSIONS.z + 0.5;
var startPosition = { var startPosition = {
x: 548.68, x: 548.68,
y: 497.30, y: 497.30,
@ -413,6 +413,9 @@
userData: JSON.stringify({ userData: JSON.stringify({
resetMe: { resetMe: {
resetMe: true resetMe: true
},
grabbableKey: {
grabbable: false
} }
}) })
}); });
@ -421,6 +424,8 @@
var originalPositions = []; var originalPositions = [];
var lastPositions = [];
function addTargets() { function addTargets() {
var i; var i;
var row = -1; var row = -1;
@ -437,6 +442,7 @@
position.y = startPosition.y - (row * VERTICAL_SPACING); position.y = startPosition.y - (row * VERTICAL_SPACING);
originalPositions.push(position); originalPositions.push(position);
lastPositions.push(position);
var targetProperties = { var targetProperties = {
name: 'Target', name: 'Target',
@ -452,7 +458,7 @@
userData: JSON.stringify({ userData: JSON.stringify({
resetMe: { resetMe: {
resetMe: true resetMe: true
} },
}) })
}; };
var target = Entities.addEntity(targetProperties); var target = Entities.addEntity(targetProperties);
@ -468,7 +474,11 @@
var distance = Vec3.subtract(originalPosition, currentPosition); var distance = Vec3.subtract(originalPosition, currentPosition);
var length = Vec3.length(distance); var length = Vec3.length(distance);
if (length > RESET_DISTANCE) { var moving = Vec3.length(Vec3.subtract(currentPosition, lastPositions[index]));
lastPositions[index] = currentPosition;
if (length > RESET_DISTANCE && moving < MINIMUM_MOVE_LENGTH) {
Entities.deleteEntity(target); Entities.deleteEntity(target);
@ -482,15 +492,10 @@
compoundShapeURL: COLLISION_HULL_URL, compoundShapeURL: COLLISION_HULL_URL,
position: originalPositions[index], position: originalPositions[index],
rotation: rotation, rotation: rotation,
script: targetsScriptURL, script: scriptURL
userData: JSON.stringify({
resetMe: {
resetMe: true
}
})
}; };
var target = Entities.addEntity(targetProperties);
targets[index] = target; targets[index] = Entities.addEntity(targetProperties);
} }
}); });

File diff suppressed because it is too large Load diff