Skip to content

Instantly share code, notes, and snippets.

@haolly
Created April 27, 2018 16:44
Show Gist options
  • Save haolly/b5299f72dda9979fe2481b535e04af57 to your computer and use it in GitHub Desktop.
Save haolly/b5299f72dda9979fe2481b535e04af57 to your computer and use it in GitHub Desktop.
simple sping effect
var g = 400;
var h = 10;
var m = 1;
var totalTime = 0;
var engine = m * g * h;
var t = Math.sqrt((2 * h)/g);
var vt = 0;
var v0 = 0;
function startYoYo(dt)
{
if(!startYouYou)
{
return;
}
var pos = cube.position.clone();
if(engine <= m * g * h / 8) {
cube.position.set(pos.x, 0, pos.z)
console.log(cube.position)
startYouYou = false;
return;
}
totalTime += dt;
if(v0 == 0) {
var s0 = 0.5 * g * totalTime * totalTime;
var h0 = h - s0;
cube.position.set(pos.x, h0, pos.z)
console.log(cube.position)
if(totalTime >= t)
{
// engine -= engine /2;
engine = engine/2;
v0 = Math.sqrt(g * h);
console.log("v0")
console.log(v0)
totalTime = 0;
}
}
else {
var s1 = v0 * totalTime - 0.5 * g * totalTime * totalTime;
cube.position.set(pos.x, s1, pos.z)
console.log(cube.position)
if(s1 <= 0) {
engine = engine/2;
v0 = Math.sqrt(g * h/2);
totalTime = 0;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment