내가 당구게임을 API 소스로 만들어보려고 했거든
근데 일단 공 2개가 있다고 가정했을때
큐대로 공 A를 치고 -> 공 A는 공 B와 충돌할때까지 굴러가고 -> 공 A와 B가 충돌하면 각도와 힘에 따라 공 A와 B가 각자 어디론가 이동하잖아
그럼 공 A와 B의 좌표값을 동시에 바꿔주면서 화면을 갱신해야하는데
내가 아는 프로그래밍으로는 while문으로 운동에너지값을 줄여가면서 0이 될때까지 좌표를 이동시키는건데...
절차지향적으로 A공을 다 움직인 후 B공을 움직이던지, B공을 움직인 후에 A공을 움직이던지 하는 순서대로의 방법밖에 없잖아...
while문안에 A공과 B공의 좌표를 동시에 바꾸게끔 할 수는 있겠지만 공이 2개가 아니라 여러개가 될 경우나 또 튀긴 공이 다른 오브젝트와 부딪혔을때를
생각하면 할 수 있을 것 같지가 않더라고
객체지향언어를 봐도 아닌것같고 멀티스레드 프로그래밍을 해야 하는건지 뭔지
뭔가 다른 개념이 필요한것 같은데 그게 뭔지 모르겠어
근데 일단 공 2개가 있다고 가정했을때
큐대로 공 A를 치고 -> 공 A는 공 B와 충돌할때까지 굴러가고 -> 공 A와 B가 충돌하면 각도와 힘에 따라 공 A와 B가 각자 어디론가 이동하잖아
그럼 공 A와 B의 좌표값을 동시에 바꿔주면서 화면을 갱신해야하는데
내가 아는 프로그래밍으로는 while문으로 운동에너지값을 줄여가면서 0이 될때까지 좌표를 이동시키는건데...
절차지향적으로 A공을 다 움직인 후 B공을 움직이던지, B공을 움직인 후에 A공을 움직이던지 하는 순서대로의 방법밖에 없잖아...
while문안에 A공과 B공의 좌표를 동시에 바꾸게끔 할 수는 있겠지만 공이 2개가 아니라 여러개가 될 경우나 또 튀긴 공이 다른 오브젝트와 부딪혔을때를
생각하면 할 수 있을 것 같지가 않더라고
객체지향언어를 봐도 아닌것같고 멀티스레드 프로그래밍을 해야 하는건지 뭔지
뭔가 다른 개념이 필요한것 같은데 그게 뭔지 모르겠어
소위 물리엔진이라고 불리는 테크닉을 써야 하는듯
실시간 연산 요망.
일단 초단위로 끊어서 연산하고, 연산 결과가 이동 경로가 교차할 때, 교차하는 시점으로 되돌려서 충돌판정 계산한 다음 다시 진행.