マウス (モバイルでは指) を希望の位置にドラッグしてカメラを移動する必要があるため、大きな問題があります。
コード自体は正常に動作しますが、ドラッグ中にけいれんがひどくなります。
私のコード:
if(_drag)
{
var mousePos:Point = new Point(_gameRef._stage.mouseX, _gameRef._stage.mouseY);
var localPos:Point = _gameRef.MainElement.globalToLocal(mousePos);
var diffX:Number = MathHelper.Difference(_prevMPosX, localPos.x);
var diffY:Number = MathHelper.Difference(_prevMPosY, localPos.y);
// Add the position changes for the camera
if(localPos.x < _prevMPosX)
_gameRef.CamController.x += diffX;
if(localPos.x > _prevMPosX)
_gameRef.CamController.x -= diffX;
if(localPos.y < _prevMPosY)
_gameRef.CamController.y += diffY;
if(localPos.y > _prevMPosY)
_gameRef.CamController.y -= diffY;
// change the previous mouse position to the current
_prevMPosX = localPos.x;
_prevMPosY = localPos.y;
e.updateAfterEvent();
}
面白いことに、+ を - に、またはその反対に変更すると、ぎくしゃくせずに動作します (ただし、自然に感じられないため、問題の解決策にはなりません)。
どうもありがとう!