laya 下以光标为中心缩放对象

  private MouseWheel(e: Laya.Event) {
        console.log("event");
        let currentSp = e.target as Laya.Sprite;
        let parentSp = currentSp.parent as Laya.Sprite;
        console.log("before scale");
        console.log(parentSp.mouseX, parentSp.mouseY);
        this.Zoom(currentSp, parentSp.mouseX, parentSp.mouseY, e.delta);
    }

    private Zoom(sp: Laya.Sprite, x: number, y: number, delta: number) {
        let oldScale = sp.scaleX;
        let scale = delta > 0 ? 1.1:1/1.1;
        let newScale = sp.scaleX * scale;
        // newScale = newScale < 0.1 ? 0.1 : (newScale > 5 ? 5 : newScale);
        // 获取在缩放比例下,光标相对偏移位置
  
        sp.x = sp.x - (x - sp.x) * (newScale - oldScale) / oldScale;
        sp.y = sp.y - (y - sp.y) * (newScale - oldScale) / oldScale;

        sp.scale(newScale, newScale);
    }
}

  

转载于:https://www.cnblogs.com/yaolin1228/p/10293753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值