2013-07-25 5 views
0

저는 AndEngine을 처음 접했습니다.이게 게임 물리학으로 터치 이벤트를 사용하는 첫 번째 시도입니다. mybringback AndEngine 튜토리얼 시리즈를 따라이 코드 블록을 만들었습니다. 나는 땅에서 위아래로 단지 튀는 스프라이트를 만들었다. 내가하고 싶은 일은 터치 이벤트를 통합하여 사용자가 스프라이트를 집어 들고 (어디서나 배치 한 다음) 스프라이트를 땅에 떨어 뜨릴 수있게하는 것입니다.물리학에서 onAreaTouched 사용하기 - AndEngine

나는 위아래로 튀는 스프라이트가 있기 때문에 좋지만 터치 이벤트는 작동하지 않습니다. 나는 onArea에 대한 약간의 연구를했지만, 나는 아직도 개념의 일부를 이해하지 못하고 있다고 생각한다. 누군가 내가 뭘 잘못하고 있는지 말할 수 있다면 크게 감사 할 것입니다.

여기 내 onPopulateScene 인 제 1 모습에

@Override 
public void onPopulateScene(Scene pScene, 

OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception { 


    final Sprite sPlayer = new Sprite(CAMERA_WIDTH/2,CAMERA_HEIGHT/2, 
      playerTexureRegion, this.mEngine.getVertexBufferObjectManager()){ 
     @Override 
     public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float X, float Y) 
     { 
      //Not sure if I'm doing this right 
      if (pSceneTouchEvent.isActionUp()) 
      { 
       this.setPosition(X, Y); 


      }else if(pSceneTouchEvent.isActionDown()) 
      { 
       this.setPosition(X, Y); 
      }else if(pSceneTouchEvent.isActionMove()) 
      { 
       this.setPosition(X, Y); 
      } 
      return true; 
     }; 
    }; 


    sPlayer.setRotation(45.0f); 


    final FixtureDef PLAYER_FIX = PhysicsFactory.createFixtureDef(10.0f, 
      1.0f, 0.0f); 
    Body body = PhysicsFactory.createCircleBody(physicsWorld, sPlayer, 
      BodyType.DynamicBody, PLAYER_FIX); 

    //Set touch Area here 
    this.scene.registerTouchArea(sPlayer); 

    this.scene.attachChild(sPlayer); 
    physicsWorld.registerPhysicsConnector(new PhysicsConnector(sPlayer, 
      body, true, false)); 
    pOnPopulateSceneCallback.onPopulateSceneFinished(); 

} 

답변

2

, 터치 이벤트가 바로 보이는 - 게임을 물리 확장하지 않고. 당신의 physicsengine에 의해 처리 된 하나, 이 충돌에 반응 -

물리학에서, 당신은/터치 스프라이트 자체를 이동하고 싶지 않아, 대신 당신은 기본 (보이지 않는) 물리학 몸을 이동하려면 물리학에 따라 스프라이트를 움직일 책임이 있습니다.

그래서 몸 대신 스프라이트를 움직이면 잘못된 방향으로 만들려고합니다. 당신의 몸은 마우스 관절에서 봐 이동 :

+0

감사합니다. 이것은 흥미로운 것 같습니다. Android에서는 간단한 터치 이벤트로 이미지를 움직일 수 있었고 AndEngine에서 같은 생각이라고 가정했습니다. 나는 그것이 완전히 다른 개념이라는 것을 몰랐다. – David

관련 문제