你好,我正在開發一款遊戲,使用andengine,現在我想讓我的精靈與OnScreenAnalogController一起旋轉。我已經初始化了它,但現在我無法弄清楚如何完成剩下的工作。任何示例代碼或任何東西將不勝感激。使用AnalogController旋轉Sprite
在此先感謝。
P.S旋轉應該在精靈的軸周圍。當我放開控制器時,我希望精靈朝向旋轉方向而不是初始方向。
你好,我正在開發一款遊戲,使用andengine,現在我想讓我的精靈與OnScreenAnalogController一起旋轉。我已經初始化了它,但現在我無法弄清楚如何完成剩下的工作。任何示例代碼或任何東西將不勝感激。使用AnalogController旋轉Sprite
在此先感謝。
P.S旋轉應該在精靈的軸周圍。當我放開控制器時,我希望精靈朝向旋轉方向而不是初始方向。
雪碧旋轉我們覆蓋了applyRotation()方法 - >
Sprite sprite = new Sprite(0, 0, textureRegionForMySprite, getVertexBufferObjectManager()){
@Override
protected void applyRotation(GLState pGLState) {
pGLState.rotateModelViewGLMatrixf(this.mRotation, 0, 1, 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
}
});
的唯一的事情是,當我鬆開控制器得到它的背到最初的位置和旋轉,這不是我想要的。有關我如何做到這一點的任何想法?
我怎麼用analogController來實現這個我不太明白。 – Kanga
我應該這樣做,然後在AnalogOnScreenController的onControlChange上添加EntityModifer?我想我會嘗試,但更詳細的解釋會很好。非常感謝 – Kanga