[언어] JAVA/Java

부드러운 움직임 , 회전

재돌쓰 2015. 2. 20. 14:17
[움직임]

this.x = this.x +rate(targetX-this.x)

this.x = this.y +rate(targetY-this.y)

rate : 0.1~1.0 (값이 클수록  빨리움직임)

[회전]
function (targetX , targetY){
 diffX = targetX-this.x;
 diffY = targetY-this.y;
 this.rotation = Math.atan2(diffY,diffX)*180/Math.PI;
}

[탄성]
a : (-2<a<2) -2에 가까울수록 속도가빠름
b : (-1<b<0) -1에 가까울수록 진폭이큼

a*a+4b (-4<a*a+4b<0)

function(a,b,targetX,taretY){
 tempX=this.x;
 tempY=this.y;

 this.x= a*(this.x-targetX)+b*(this.prevX-targetX)+targetX;
 this.y= a*(this.y-targetY)+b*(this.prevY-targetY)+targetY;

 this.prevX=tempX;
 this.prevY=tempY;
}

탄성은 스케일로 변경해서 크기를 탄성력있게도 작업가능함.