我有一个很大的问题,因为我需要通过拖动鼠标(手机上的手指)来移动相机到你想要的位置。
代码本身运行良好,但我在拖动时有一个很糟糕的抖动。
我的代码:
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();
}有趣的是,当我将+改为-和相反时,它就能正常工作而不会突然跳动(但它感觉不自然,所以它不是我的问题的解决方案)。
非常感谢!
发布于 2013-08-08 15:48:46
好吧,错误是使用了本地坐标。
不,我已经根据我的全局舞台坐标做出了每一个依赖,而且它没有任何抖动!
https://stackoverflow.com/questions/18120402
复制相似问题