이유는 다음 GetLinerVelocity과 ApplyImpulse를 사용해보십시오, 내가 같은 것을 의미 ...이 예절로 만든 물론 나는 정확히 키를 사용하여이 개 기능을 이전하게 작동 할 수 없습니다 player_normal은 단지 플레이어 (객체)입니다. 그리고 물론 player_max_speed과 player_speed 내가 원하는대로 이동에 추가 단지 다른 예절 ...
player_speed = 2;
player_max_speed = 4;
player_normal = new b2Vec2(0, 0);
이 함수 홈페이지에 간다이다. 속도와 max_speed를 Number var로 설정하고 법선은 단지 b2Vec2입니다.
그리고 당신은 키까지 아래로 누릅니다 때 키 기능입니다 : 물론
private function apreto(e:KeyboardEvent):void
{
switch (e.keyCode)
{
case 37:
left = true;
break;
}
private function suelto(e:KeyboardEvent):void
{
switch (e.keyCode)
{
case 37:
left = false;
break;
}
는 "왼쪽"부울입니다. 아주 간단합니다. 그리고 당신은 모든 키 (오른쪽, 위, 아래)와 같은 것을해야합니다. 원하는 키의 종류에 달려 있습니다. 예를 들어 숫자 37 = 키보드 왼쪽에있는 키. 알려하지 않을 경우 좀 더 할 수있는 다른 방법이 ... 내가 당신을 도울 수있는 희망
if (player_normal.x >= 0)
{
if (left)
{
if (player.GetLinearVelocity().x > -player_max_speed)
{
player.ApplyImpulse(new b2Vec2(-player_speed, 0), player.GetWorldCenter());
}
}
}
:
그리고 코드
움직임에게 (업데이트)에서 플레이어를 제공합니다 쉬운. 질문에 답할 수 있다면 도와 주셔서 감사합니다.
멋진 팁을 주셔서 감사합니다. :) –