首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CocosSharp图层上添加缩放

在CocosSharp图层上添加缩放
EN

Stack Overflow用户
提问于 2018-01-31 18:04:19
回答 1查看 133关注 0票数 1

我在Visual Studio2017上测试CocosSharp,我想通过测试一组CCTouch元素在CCLayer上执行缩放。

此列表由CCEventListenerTouchAllAtOnce.OnTouchesBegan事件发送。

下面是我的不起作用的代码:

代码语言:javascript
复制
    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层添加了触摸监听器:

代码语言:javascript
复制
        var touchListener = new CCEventListenerTouchAllAtOnce();
        touchListener.OnTouchesBegan = HandleTouchBegan;
        layer.AddEventListener(touchListener);

我得到了在touches列表中有2个CCTouch的事件,但是层没有缩放。

我哪里错了?有没有更好的方法来缩放图层?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-06-09 11:33:35

我刚开始写这篇文章,偶然看到你的帖子,所以我根本不是权威人士。

我采用了您的代码,并使用了OnTouchesMoved。然后我将delta除以100,因为它太大了,就像在这个代码中一样。

现在它可以放大/缩小,但以一种奇怪的“横向”方式。还有更多的工作要做,但我想我应该给出一些建议!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48539405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档