플랫 포머 게임에서 떨어지는 동안 box2d 이상한 효과가있는 AS3

이고르

AS3와 box2D를 사용하여 플랫 포머 게임을 만들고 있습니다. 알아낼 수없는 이상한 문제가 있습니다. 캐릭터는 끊임없이 달리고 있으며 터치하면 점프합니다. 그러나 높은 지점에서 점프 할 때 캐릭터는 중력 아래에서 떨어지는 동안 수평 속도를 느슨하게하고지면에 닿을 때까지 Y 축에서만 이동 한 다음 달리기를 다시 시작합니다. 이상한 점은 중력을 줄이면 그런 효과가 없다는 것입니다. 밀도와 마찰을 가지고 놀아 보았습니다. 또한 댐핑이 없습니다.

점프 및 낙하 및 속도 문제와 관련된 가능한 모든 box2d 문제를 검색했습니다. 아무것도 찾을 수 없습니다.

다음은 캐릭터 이동에 대한 코드입니다. 중력은 20이고 타임 스텝은 1/15입니다.

public class HeroModel extends GameObjectModel
{
    public var isJumping:Boolean = false;
    public var isAlive:Boolean = true;
    public var forwardForce:b2Vec2;
    public var decreasingForceY:Number = -200;
    public var decreasingForceX:Number = 100;
    public var startPos:Point;
    public var jumps:Number = 1;

    public function HeroModel()
    {
        super();
    }


    override public function initFrom(initObj:Object, world:b2World):void
    {
        super.initFrom(initObj, world);

        var filterdata:b2FilterData = new b2FilterData();
        filterdata.groupIndex = 1;
        filterdata.maskBits = 1;
        physicsBody.GetFixtureList().SetRestitution(0);
        physicsBody.GetFixtureList().SetDensity(0);
        physicsBody.GetFixtureList().SetFriction(0);
        physicsBody.GetFixtureList().SetFilterData(filterdata);
        physicsBody.SetType(b2Body.b2_dynamicBody);
        physicsBody.SetBullet(true);

        applyForwardForce();
        physicsBody.SetUserData(this);
        startPos = new Point(this.physicsBody.GetPosition().x, this.physicsBody.GetPosition().y);
    }

    public function die():void
    {
        //TODO Empty function.?
    }

    public function applyForwardForce():void
    {
        forwardForce = new b2Vec2(200,0);
        physicsBody.ApplyForce(forwardForce, new b2Vec2(0,0));
    }

    public function jump(e:EnterFrameEvent):void
    {

        if(decreasingForceY < 0 && decreasingForceX > 75)
        {
            physicsBody.ApplyImpulse(new b2Vec2(decreasingForceX, decreasingForceY), new b2Vec2(0,0));
            decreasingForceY+=5;
            decreasingForceX-=2.5;
        }

    }

    public function resetVelocity():void
    {
        decreasingForceX = 100;
        decreasingForceY = -200;
    }

}

스크린 샷

게임의 스크린 샷입니다. 빨간색은 일어나는 일이고 녹색은 내가 원하는 것입니다.

내가 착각 한 아이디어가 있습니까? :)

이고르

SetLinearVelocity를 사용하여 수정했습니다. 이제 모두 좋습니다. :)

   public function jump(e:EnterFrameEvent):void
    {
        if (!singleJump)
        {
            physicsBody.IsAwake();
            physicsBody.IsBullet();



            physicsBody.SetLinearVelocity(new V2(75, -200));



            physicsBody.GetLinearVelocity();
            trace(physicsBody.GetLinearVelocity().x);
            trace(physicsBody.GetLinearVelocity().y);

            singleJump = true;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

플랫 포머 게임 : 너무 빨리 떨어지는 캐릭터

분류에서Dev

2D 플랫 포머 용 스프라이트 킷으로 이동하는 플랫폼에 용이함 추가

분류에서Dev

2D 플랫 포머 게임, HTML5에서 플레이어 카메라보기 만들기

분류에서Dev

낙하시 충돌이있는 플랫폼에서 캐릭터 정지 : AS3

분류에서Dev

간단한 2D 플랫 포머 용 파이 게임의 충돌 감지 문제

분류에서Dev

우분투에서 사용할 수있는 로그 라이크 플랫 포머?

분류에서Dev

회전하는 동안 두 몸체가 충돌 할 때 Box2d 이상한 동작

분류에서Dev

우분투 이외의 다른 곳에서 레벨을 올바르게로드하지 않는 비 우분투 지향 파이 게임 플랫 포머

분류에서Dev

2 차를 간단한 플랫 포머로 어떻게 프로그래밍 할 수 있습니까?

분류에서Dev

게임 시작시 플레이어가 떨어지는 것을 막고 탭을 사용하여 unity2D에서 시작

분류에서Dev

Box2d 바디가 완전히 다른 바디 안에있을 때와 그것이 어느 쪽에서 왔는지 감지합니다.

분류에서Dev

(안드로이드 플랫폼에서) cocos2dJs 크로스 플랫폼 게임에서 언어 변경시 장치에 크래시

분류에서Dev

동일한 플랫폼에 두 개 이상의 jre 구현이있는 경우 어떻게됩니까?

분류에서Dev

box2d 점이 고정물에 있는지 확인

분류에서Dev

플랫 포머 용 파이 게임을 사용하여 파이썬에서 점프 및 중력 논리를 코딩하는 쉽고 효율적인 방법이 있습니까?

분류에서Dev

b2FixtureDef.shape.SetAsArray가있는 Box2D 본문이 테트리스와 유사한 모양에서 작동하지 않음

분류에서Dev

firemonkey 플랫폼에서 2d 개체를 이동하는 방법?

분류에서Dev

다른 플랫폼에서 URL을 공유하는 동안 이미지가 표시되지 않음

분류에서Dev

이 코드가 한 플랫폼에서는 작동하지만 다른 플랫폼에서는 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Box2d setAngularVelocity는 고속에서 작동하지 않습니다.

분류에서Dev

Titanium SDK는 지원하는 다양한 플랫폼에서 어떻게 작동합니까 (2013 년)?

분류에서Dev

역 직렬화하는 동안 POCO 속성과 일치하지 않는 나머지 JSON 데이터를 어떻게 든 포착 할 수 있습니까?

분류에서Dev

PulleyJoint 이상한 행동 Box2D

분류에서Dev

PulleyJoint 이상한 행동 Box2D

분류에서Dev

배포 된 머신에서 작동하지 않는 QtSql 애플리케이션

분류에서Dev

내 파이 게임 프로그램에서 점프가 작동하지 않음-화면 상단으로 점프하고 플랫폼 아래로 이동

분류에서Dev

마우스로 스크롤 할 수있는 동안 scrollTop이 Javascript에서 어떻게 효과가 없습니까?

분류에서Dev

int는 잘 작동하지만 약간의 움직임이 발생합니다. 숫자로 인해 AS3에서 이상한 동작이 발생합니다.

분류에서Dev

오랫동안 그래프에 보관 된 미디어 샘플 (누적 효과)

Related 관련 기사

  1. 1

    플랫 포머 게임 : 너무 빨리 떨어지는 캐릭터

  2. 2

    2D 플랫 포머 용 스프라이트 킷으로 이동하는 플랫폼에 용이함 추가

  3. 3

    2D 플랫 포머 게임, HTML5에서 플레이어 카메라보기 만들기

  4. 4

    낙하시 충돌이있는 플랫폼에서 캐릭터 정지 : AS3

  5. 5

    간단한 2D 플랫 포머 용 파이 게임의 충돌 감지 문제

  6. 6

    우분투에서 사용할 수있는 로그 라이크 플랫 포머?

  7. 7

    회전하는 동안 두 몸체가 충돌 할 때 Box2d 이상한 동작

  8. 8

    우분투 이외의 다른 곳에서 레벨을 올바르게로드하지 않는 비 우분투 지향 파이 게임 플랫 포머

  9. 9

    2 차를 간단한 플랫 포머로 어떻게 프로그래밍 할 수 있습니까?

  10. 10

    게임 시작시 플레이어가 떨어지는 것을 막고 탭을 사용하여 unity2D에서 시작

  11. 11

    Box2d 바디가 완전히 다른 바디 안에있을 때와 그것이 어느 쪽에서 왔는지 감지합니다.

  12. 12

    (안드로이드 플랫폼에서) cocos2dJs 크로스 플랫폼 게임에서 언어 변경시 장치에 크래시

  13. 13

    동일한 플랫폼에 두 개 이상의 jre 구현이있는 경우 어떻게됩니까?

  14. 14

    box2d 점이 고정물에 있는지 확인

  15. 15

    플랫 포머 용 파이 게임을 사용하여 파이썬에서 점프 및 중력 논리를 코딩하는 쉽고 효율적인 방법이 있습니까?

  16. 16

    b2FixtureDef.shape.SetAsArray가있는 Box2D 본문이 테트리스와 유사한 모양에서 작동하지 않음

  17. 17

    firemonkey 플랫폼에서 2d 개체를 이동하는 방법?

  18. 18

    다른 플랫폼에서 URL을 공유하는 동안 이미지가 표시되지 않음

  19. 19

    이 코드가 한 플랫폼에서는 작동하지만 다른 플랫폼에서는 작동하지 않는 이유는 무엇입니까?

  20. 20

    Box2d setAngularVelocity는 고속에서 작동하지 않습니다.

  21. 21

    Titanium SDK는 지원하는 다양한 플랫폼에서 어떻게 작동합니까 (2013 년)?

  22. 22

    역 직렬화하는 동안 POCO 속성과 일치하지 않는 나머지 JSON 데이터를 어떻게 든 포착 할 수 있습니까?

  23. 23

    PulleyJoint 이상한 행동 Box2D

  24. 24

    PulleyJoint 이상한 행동 Box2D

  25. 25

    배포 된 머신에서 작동하지 않는 QtSql 애플리케이션

  26. 26

    내 파이 게임 프로그램에서 점프가 작동하지 않음-화면 상단으로 점프하고 플랫폼 아래로 이동

  27. 27

    마우스로 스크롤 할 수있는 동안 scrollTop이 Javascript에서 어떻게 효과가 없습니까?

  28. 28

    int는 잘 작동하지만 약간의 움직임이 발생합니다. 숫자로 인해 AS3에서 이상한 동작이 발생합니다.

  29. 29

    오랫동안 그래프에 보관 된 미디어 샘플 (누적 효과)

뜨겁다태그

보관