假設有從外面進入屏幕的錯誤。要做到這一點,我們需要有4個座標(StartX,StartY,TargetX,TargetY)。如何將錯誤轉到適當的方向?幾個小時我一直在搞這個,而且一直無法弄清楚這個部分。所以這個錯誤進入了屏幕,但它並沒有面向正確的方向。 (這四個座標是隨機數)。在Andengine中旋轉圖像
我指望了線的斜率,因爲我在學校學到:
int deltaY = TargetY - StartY;
int deltaX = TargetX - StartX;
float gradient = (float)deltaY/(float)deltaX;
然後角度旋轉的bug:
float angle = (float) (Math.atan(gradient) * 180/PI);
那麼這裏就是旋轉並移動修改:
registerEntityModifier(new RotationModifier(0.3f, 0, angle) {
@Override
protected void onModifierFinished(IEntity pItem) {
super.onModifierFinished(pItem);
registerEntityModifier(new MoveModifier(0.8f, StartX, TargetX, StartY, TargetY) {
@Override
protected void onModifierFinished(IEntity pItem) {
super.onModifierFinished(pItem);
}
});
}
});
該解決方案更復雜,因爲在一定的梯度線上該錯誤可能來自兩個方向,所以它可以面對兩個方向。 我知道1/2的斜率意味着26.56度,在AndEngine座標系中,這意味着-26.56或-206.56度,這取決於錯誤來自哪一方。
我設法與幾個如果-S做到這一點,但您的解決方案更簡單! – erdomester