2013-10-25 33 views
0

你好,我正在開發一款遊戲,使用andengine,現在我想讓我的精靈與OnScreenAnalogController一起旋轉。我已經初始化了它,但現在我無法弄清楚如何完成剩下的工作。任何示例代碼或任何東西將不勝感激。使用AnalogController旋轉Sprite

在此先感謝。

P.S旋轉應該在精靈的軸周圍。當我放開控制器時,我希望精靈朝向旋轉方向而不是初始方向。

回答

0

雪碧旋轉我們覆蓋了applyRotation()方法 - >

Sprite sprite = new Sprite(0, 0, textureRegionForMySprite, getVertexBufferObjectManager()){ 
    @Override 
    protected void applyRotation(GLState pGLState) { 
     pGLState.rotateModelViewGLMatrixf(this.mRotation, 0, 1, 0); 
    } 
}; 
+0

我怎麼用analogController來實現這個我不太明白。 – Kanga

+0

我應該這樣做,然後在AnalogOnScreenController的onControlChange上添加EntityModifer?我想我會嘗試,但更詳細的解釋會很好。非常感謝 – Kanga

0

我有點找到了解決方法使用此代碼

mAnalogController = new AnalogOnScreenControl(90, cameraHeight - 130, mCamera, mControllerTextureRegion, mKnobTextureRegion, 0.01f, getVertexBufferObjectManager(), new IAnalogOnScreenControlListener(){ 

     @Override 
     public void onControlChange(
       BaseOnScreenControl pBaseOnScreenControl, float pValueX, 
       float pValueY) { 

      //rect.registerEntityModifier(new RotationByModifier(0.5f, MathUtils.radToDeg((float) Math.atan2(-pValueX, pValueY)))); 

      rect.registerEntityModifier(new RotationModifier(0.1f, rect.getRotation(), MathUtils.radToDeg((float) Math.atan2(pValueX, -pValueY)))); 
     } 

     @Override 
     public void onControlClick(
       AnalogOnScreenControl pAnalogOnScreenControl) { 
      // TODO Auto-generated method stub 

     } 

    }); 

的唯一的事情是,當我鬆開控制器得到它的背到最初的位置和旋轉,這不是我想要的。有關我如何做到這一點的任何想法?