设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

(已解决)关于MZ图片鼠标互动

查看数: 2570 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-2-6 18:19

正文摘要:

回复

百里_飞柳 发表于 2021-2-6 20:29:37
423行的代码里
        isOnPicturePos(x = TouchInput.x, y = TouchInput.y) {
            const pic = this._picture;
            if (!pic.bitmap || !pic.bitmap.isReady() || pic.scale.x === 0 || pic.scale.y === 0) {
                return false;
            }
            if (this.isTouchPosInFrameWindow()) {
                return true;
            }
            const dx  = this.getTouchScreenX(x) - pic.x;
            const dy  = this.getTouchScreenY(y) - pic.y;
            const sin = Math.sin(-pic.rotation);
            const cos = Math.cos(-pic.rotation);
            const bx = Math.floor(dx * cos + dy * -sin) / pic.scale.x + pic.anchor.x * pic.width;
            const by = Math.floor(dx * sin + dy * cos) / pic.scale.y + pic.anchor.y * pic.height;
            return pic.bitmap.getAlphaPixel(bx, by) !== 0;
        }
它贴心帮你判定了,点击处不为透明像素才算成功点击

点评

成功了...(  发表于 2021-2-6 21:11
啊,我是连基本语法都完全不懂的程度。不过我试试(作死开始)。  发表于 2021-2-6 21:07
bx和by就是计算了缩放、旋转、图片原点变换等之后的在图片坐标上的位置,判定下这个坐标是否在(0, pic.width) (0, pic.height) 之中?  发表于 2021-2-6 20:59
这句我顺藤摸瓜地找到了,然后不知道怎么改...  发表于 2021-2-6 20:44
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-11 22:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表