【大坑】计算旋转请一定注意

getWorldRotation().getEulerAngles算出来的旋转完全可能和预想不同,如z轴旋转180度会被换算成xy翻面 :weary: 3.0+不用3d只去做2d真实坑到我 :sob:

用四元数不会出差错

请教一个问题,3.3.2版本的renderTexture没有readPixels()方法吗,现在我要把截图存在本地,应该用什么方法呢

:sneezing_face:只想做2d计算去用四元数是不是难了点

读取选定范围的实际像素:
let x = 0;
let y = 0;
let width = 1;
let height = 1;
let data = new Uint8Array(width * height * 4);
let func = ()=>{
director.off(Director.EVENT_AFTER_DRAW,func);
let gl = game.canvas.getContext(“webgl2”);
if (gl){
gl.readPixels(x,y,width,height,gl.RGBA,gl.UNSIGNED_BYTE,data);
}else{
let gl1 = game.canvas.getContext(“webgl”);

            if (gl1){
                gl1.readPixels(x,y,width,height,gl.RGBA,gl.UNSIGNED_BYTE,data);
            }
        }
        
        log(data.toString());
        log(data.toLocaleString());
    }
    director.on(Director.EVENT_AFTER_DRAW,func);
1赞

感谢大神赐教,我现在试一下 :smiley:

jsb里面没有saveImageData方法了,这该怎么办 :rofl:

我对这一块研究不多,哈哈,论坛里有个大佬给你提供的jsb.fileUtils可以用吗

cocos表示不背这个锅。。用四元数的lerp,slerp就好了

jsb.fileUtils里的writeDataToFile方法可以用,但是存下来的文件后缀名是png,但是内容格式显然不是,因为打不开的,官方文档里jsb.saveImageData(data, imgWidth, imgHeight, filePath)这个方法新版本已经没有了