vis changes to fade. Still needs more work

This commit is contained in:
David Kelly 2017-03-22 17:01:42 -07:00
parent 675612c1e9
commit 7b52afb58b

View file

@ -27,7 +27,7 @@ const WAITING_INTERVAL = 100; // ms
const CONNECTING_INTERVAL = 100; // ms const CONNECTING_INTERVAL = 100; // ms
const MAKING_CONNECTION_TIMEOUT = 800; // ms const MAKING_CONNECTION_TIMEOUT = 800; // ms
const CONNECTING_TIME = 1600; // ms const CONNECTING_TIME = 1600; // ms
const PARTICLE_RADIUS = 0.1; const PARTICLE_RADIUS = 0.15;
const PARTICLE_ANGLE_INCREMENT = 360/45; // 1hz const PARTICLE_ANGLE_INCREMENT = 360/45; // 1hz
const HANDSHAKE_SOUND_URL = "https://s3-us-west-1.amazonaws.com/hifi-content/davidkelly/production/audio/4beat_sweep.wav"; const HANDSHAKE_SOUND_URL = "https://s3-us-west-1.amazonaws.com/hifi-content/davidkelly/production/audio/4beat_sweep.wav";
const SUCCESSFUL_HANDSHAKE_SOUND_URL = "https://s3-us-west-1.amazonaws.com/hifi-content/davidkelly/production/audio/3rdbeat_success_bell.wav"; const SUCCESSFUL_HANDSHAKE_SOUND_URL = "https://s3-us-west-1.amazonaws.com/hifi-content/davidkelly/production/audio/3rdbeat_success_bell.wav";
@ -78,7 +78,7 @@ const MAKING_CONNECTION_PARTICLE_PROPS = {
"particleRadius": 0.048, "particleRadius": 0.048,
"polarStart": 0, "polarStart": 0,
"polarFinish": 1, "polarFinish": 1,
"radiusFinish": 0.2, "radiusFinish": 0.3,
"radiusStart": 0.04, "radiusStart": 0.04,
"speedSpread": 0.01, "speedSpread": 0.01,
"radiusSpread": 0.9, "radiusSpread": 0.9,
@ -200,6 +200,15 @@ function positionFractionallyTowards(posA, posB, frac) {
return Vec3.sum(posA, Vec3.multiply(frac, Vec3.subtract(posB, posA))); return Vec3.sum(posA, Vec3.multiply(frac, Vec3.subtract(posB, posA)));
} }
function fadeEffects() {
if (particleEffect) {
Entities.editEntity(particleEffect, {isEmitting: 0, lifespan: 1.0});
}
if(makingConnectionParticleEffect) {
Entities.editEntity(makingConnectionParticleEffect, {isEmitting: 0, lifespan: 1.5});
}
}
function deleteParticleEffect() { function deleteParticleEffect() {
if (particleEffect) { if (particleEffect) {
particleEffect = Entities.deleteEntity(particleEffect); particleEffect = Entities.deleteEntity(particleEffect);
@ -224,22 +233,15 @@ function calcParticlePos(myHand, otherHand, otherOrientation, reset) {
} }
var position = positionFractionallyTowards(myHand, otherHand, 0.5); var position = positionFractionallyTowards(myHand, otherHand, 0.5);
particleRotationAngle += PARTICLE_ANGLE_INCREMENT; // about 0.5 hz particleRotationAngle += PARTICLE_ANGLE_INCREMENT; // about 0.5 hz
var radius = Math.min(PARTICLE_RADIUS, PARTICLE_RADIUS * particleRotationAngle / 720); var radius = Math.min(PARTICLE_RADIUS, PARTICLE_RADIUS * particleRotationAngle / 360);
var axis = Vec3.mix(Quat.getFront(MyAvatar.orientation), Quat.inverse(Quat.getFront(otherOrientation)), 0.5); var axis = Vec3.mix(Quat.getFront(MyAvatar.orientation), Quat.inverse(Quat.getFront(otherOrientation)), 0.5);
return Vec3.sum(position, Vec3.multiplyQbyV(Quat.angleAxis(particleRotationAngle, axis), {x: 0, y: radius, z: 0})); return Vec3.sum(position, Vec3.multiplyQbyV(Quat.angleAxis(particleRotationAngle, axis), {x: 0, y: radius, z: 0}));
} }
// this is called frequently, but usually does nothing // this is called frequently, but usually does nothing
function updateVisualization() { function updateVisualization() {
// after making connection, if you are still holding the grip lets transition
// back to waiting
if (state == STATES.makingConnection && !connectingId) {
startHandshake();
return;
}
if (state == STATES.inactive) { if (state == STATES.inactive) {
deleteParticleEffect(); fadeEffects();
deleteMakeConnectionParticleEffect();
stopHandshakeSound(); stopHandshakeSound();
return; return;
} }
@ -272,6 +274,7 @@ function updateVisualization() {
// now manage the rest of the entity // now manage the rest of the entity
if (!particleEffect) { if (!particleEffect) {
particleRotationAngle = 0.0; particleRotationAngle = 0.0;
particleEmitRate = 500;
particleProps = PARTICLE_EFFECT_PROPS; particleProps = PARTICLE_EFFECT_PROPS;
particleProps.isEmitting = 0; particleProps.isEmitting = 0;
particleProps.position = calcParticlePos(myHandPosition, otherHand, otherOrientation); particleProps.position = calcParticlePos(myHandPosition, otherHand, otherOrientation);
@ -293,7 +296,7 @@ function updateVisualization() {
} }
break; break;
case STATES.makingConnection: case STATES.makingConnection:
particleEmitRate *= 0.5; particleEmitRate = Math.max(50, particleEmitRate * 0.5);
Entities.editEntity(makingConnectionParticleEffect, {emitRate: 0, isEmitting: 0, position: myHandPosition}); Entities.editEntity(makingConnectionParticleEffect, {emitRate: 0, isEmitting: 0, position: myHandPosition});
Entities.editEntity(particleEffect, {position: calcParticlePos(myHandPosition, otherHand, otherOrientation), emitRate: particleEmitRate}); Entities.editEntity(particleEffect, {position: calcParticlePos(myHandPosition, otherHand, otherOrientation), emitRate: particleEmitRate});
break; break;