我正在 Visual Studio 2017 上测试 CocosSharp,我想通过测试 CCTouch 元素列表来对 CCLayer 执行缩放。
此列表由 CCEventListenerTouchAllAtOnce.OnTouchesBegan 事件发送。
这是我的代码不起作用:
private void HandleTouchBegan(List<CCTouch> touches, CCEvent touchEvent)
{
if (touches.Count == 2)
{
CCTouch t1 = touches[0];
CCTouch t2 = touches[1];
CCPoint Loc1 = t1.LocationOnScreen;
CCPoint Loc2 = t2.LocationOnScreen;
CCPoint PreviousLoc1 = t1.PreviousLocationOnScreen;
CCPoint PreviousLoc2 = t2.PreviousLocationOnScreen;
double CurrentDistance = Math.Sqrt(Math.Pow(Loc1.X - Loc2.X, 2.0f) + Math.Pow(Loc1.Y - Loc2.Y, 2.0f));
double PreviousDistance = Math.Sqrt(Math.Pow(PreviousLoc1.X - PreviousLoc2.X, 2.0f) + Math.Pow(PreviousLoc1.Y - PreviousLoc2.Y, 2.0f));
double Delta = CurrentDistance - PreviousDistance;
layer.ScaleX += (float)Delta;
layer.ScaleY += (float)Delta;
}
我在 CCLayer 层上添加了这样的触摸监听器:
var touchListener = new CCEventListenerTouchAllAtOnce();
touchListener.OnTouchesBegan = HandleTouchBegan;
layer.AddEventListener(touchListener);
我在触摸列表中获得了带有 2 CCTouch 的事件,但图层未缩放。
我哪里错了?有没有更好的方法来做这个图层缩放?
感谢您的帮助。