티스토리 뷰


이번에는 간단한 공 튕기기에 대해서 알아보겠습니다.

여기서 알아야 할것들은 결국 좌표를 일정하게 더해주고 또 바닥면에 부딪쳤을 때 +  - 로 수정하면 됩니다.

한번 액션스크립트를 보겠습니다.

500/200 인 창에다가 ball 과 floor 란 두개의 무비 클립을 만들었습니다.

ball이란놈에게 속도를 줍시다.

위에서 아래로 떨어질때는 일정한 가속도가 더해집니다. 중력가속도라고 하죠?`ㅡ`?

만약 가속도가 0.2라고 할때 공이 움직이는 속도는 0.2 /0.4/ 0.6 이렇게 순차적으로 빨라져야 할것 입니다.

그럼 지정해주조

ball.speed = 0; // 요놈이 공의 속도를 저장할 변수입니다.
ball.gung = 0.5// 가속도를 0.5 라고 지정하죠
자그럼 ball.speed+=ball.gung;
속도를 지정해놓았습니다 안에 수치는 0.5씩 자꾸 커지겠죠?

그럼 공에 이 속도를 넣어봅시다
ball._y+=ball.speed;
다음은 평면상에 공이 닿았을때 반대방향으로 움직이게 합시다.(쉽습니다+_+생각이떠오르죵?)
나의사랑 if문
if(ball._y+ball._width/2>floor._y){
ball.speed=ball.speed*-1;
}
조건문은 공의 Y좌표(공의중간) + 공의 중간점에서 반지름 크기만큼 더해준 값이
바닥 floor 에 닿으면 -1의 값을 줌으로써 그 방향이 바뀌게 한다.
그럼 공에 닿는 순간 방향이 바뀌게 될것이고 거기에 계속해서 0.5라는 가속도값을 계속 더해줄 것이다.
ball.speed가 -값에서 다시 0이되면 멈추게되고 다시 0.5씩 더함으로 또 아래로 움직이게 됩니다.

바로 공 튕기기가 시작 된 것 입니다 + _ +

ball.speed = 0;
ball.gung=0.5;
_root.onEnterFrame = function(){
ball.speed+=ball.gung;
ball._y+=ball.speed;
if(ball._y+ball._width/2>floor._y){
ball.speed=ball.speed*-1;
//trace(ball.speed);
}
}

제가 실행한 총 소스 입니다. 아래 trace는 speed의 값의 변화를 보기 위해서 작성 했습니다.
공부하실때 보시면 좋습니다. 왜 공이 점점 튕기는 게 줄어드는지 같이 고민해봅시다+_+


-------------------------------------고민후
이유인즉 공이 바닥에 닿는 순간 -값이 되고 또 그동시에 가속도값이 더해짐으로
그 순간 속도 값만큼 차이가 나게 됩니다. 공이 떨어지는데 까지 10의 속도가 필요했으면
바닥에 닿는 순간 -10이됨과 동시에 0.5의속도가 더해짐으로 -9.5에서 다시 출반하는 거죠
이것이 반복 되다보니 0.5씩 자꾸 수치가 줄어듬으로 튕기는 높이가 줄어드는 것이죵-0-!!

다음 시간에는 - _ -b 엑스 축으로 값을 추가해줘 봅시당 - _ -오른쪽 왼쪽으로 공 튕기기 !!


댓글