Сделал, чтобы мои диаманты мягко приземлялись)
https://dl.dropbox.com/u/55489242/Di...WebPlayer.html Нормально выглядит?
После того как черт знает сколько поломал с этим голову решил тупо в корутине за несколько кадров смещать диамант сначала вниз, а потом вверх на исходную позицию)
public void Fall(float height) {
float oldSpeed = speed;
speed += 18*Time.deltaTime;
speed = Mathf.Clamp(speed, 4, 12);
Vector2 oldPosition = position;
position.y -= speed*Time.deltaTime;
position.y = Mathf.Max(position.y, height);
speed = (oldPosition.y - position.y)/Time.deltaTime;
if( Mathf.Abs(speed) <= float.Epsilon ) speed = 0;
if(!playingAnimation && speed < oldSpeed) {
playingAnimation = true;
float k = (oldSpeed-4)/(12-4);
StartCoroutine( LandingAnimation(oldSpeed, k) );
}
}
private IEnumerator LandingAnimation(float speed, float k) {
speed *= 0.4f;
k *= 0.3f;
while(offset.y > -k) {
offset.y -= speed*Time.deltaTime;
if(offset.y < -k) offset.y = -k;
yield return null;
}
while(offset.y < 0) {
offset.y += speed*Time.deltaTime;
if(offset.y > 0) offset.y = 0;
yield return null;
}
playingAnimation = false;
}