[언어] 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;
}
탄성은 스케일로 변경해서 크기를 탄성력있게도 작업가능함.