Показать сообщение отдельно
Старый 09.07.2012, 18:11   #461
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Сделал, чтобы мои диаманты мягко приземлялись) 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;
	}
(Offline)
 
Ответить с цитированием