나는 우주에서 항해하는 플레이어가 있습니다. 공간이기 때문에 중력이 없기 때문에 파라볼 궤적이 없습니다. 플레이어는 왼쪽에서 오른쪽으로 수평선을 따라 가고 있습니다. 플레이어는 실제로 움직이지 않지만 배경은 그렇기 때문에 마치 그가있는 것처럼 보입니다. x 값은 고정되어 있습니다.코로나 SDK : 플레이어 이동 위아래
나는 플레이어가 소행성과 같은 장애물을 피하는 데 도움이되는 2 개의 버튼이 있습니다. 하나의 버튼은 플레이어에게 위쪽으로 힘을주고 다른 하나는 아래쪽으로 힘을줍니다. 버튼을 누를 때 호출되는 함수는 다음과 같습니다.
function moveUp(event) if event.phase == "ended" thenplayer:applyForce(0, 8, player.x, player.y) player:setSequence("jump") jumpChannel = audio.play(jumpSound) end return true end
함수 moveDown (이벤트) 는 event.phase ==이라면
player:applyForce(0, -8, player.x, player.y) player:setSequence("jump") jumpChannel = audio.play(jumpSound) end return true end
이 구현에 대한 문제는 힘이인가 될 때마다, 플레이어가가는 유지한다는 것이다 "종료" 그 방향. 그런 다음 반대 방향으로 힘을 가해 야하고 그는 그 방향으로 영원히 계속 갈 것입니다. 그건 내가 원하는 것이 아니다. 내가 원하는 것은 :
UP을 누르면는, 플레이어는 새로운 고도에 왼쪽에서 오른쪽으로 플레이어가 수평 방향으로 가고 계속 그런 Y. 특정 값 (예를 들어 50 픽셀)를 위해 간다.
DOWN을 누르면 플레이어가 특정 값 아래로 떨어집니다. 그런 다음 플레이어는 새로운 고도에서 왼쪽에서 오른쪽으로 수평 방향으로 계속 진행합니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까? applyForce 함수를 사용하여이 작업을 수행 할 수 있습니까? 아니면 다른 방법이 있습니까? 시간 내 미리 감사드립니다.
더 "현실적"운동은 항상 부드럽고 더 현실이다. linearDamping 요소는 매력처럼 작동합니다. 고마워, 정말 고마워! – Henok