还是物理反射的问题

我现在根据起始点和第一个反射点求出来了发射向量
也算出了发射向量与normal之间的夹角,角度是-62.xxxxxx 弧度是-1.089xxxxxxx

        var newStartPoint = p2;
        var ray = p1.sub(p2);   //p1是起始点 p2是与右侧墙壁碰撞的点  result是碰撞结果的集合
        console.log("发射向量 ---> " + ray.x + "---->" + ray.y);
        p2 = result.normal.mul(this.remainLength).add(p1)   //console.log("未旋转反射向量 ---> " + p2.x + "---->" + p2.y); 
       var radius = cc.pAngleSigned(ray, p2); 
       console.log("弧度为--->" + radius);
        var angle = 180 / Math.PI * radius;
        console.log("对应的角度为--->" + angle); 
       p2 = p2.rotate(radius);
       this.rayCast(newStartPoint, p2);

为什么rotate旋转后的结果不对呢,应该按照我算出来的角度65度来旋转或者弧度-1.089来旋转啊
现在才转了有20度?
求问大大们 我哪个地方弄错了

有大大指导下吗。。。困扰了好久了。。不知道哪错了。。
需要什么数据我马上给。。。

p1 p2 result 都是啥啊?
var radius = cc.pAngleSigned(ray, p2); 这里的两个参数确定没问题么

算出的弧度和对应的角度目测是对的。。没拿工具测。。

如果没有用物理引擎,自己想怎么让他动不就怎么让他动呀

因为可能游戏里面还会有一些不规则形状的道具。。所以感觉还是用物理引擎方便

var radius = cc.pAngleSigned(ray, p2); p2改成result.normal试下

不对。p2跟result.normal方向是完全一样的,只是长度不一样罢了

请@jare @jjyinkailejj 老师帮忙看看啊。。。

试一下呗:blush:

大兄弟等你一个早晨了

啊。。。我就是试了以后才回复的,确实不对

其实我的跟引擎例子里面的没啥区别,就是加了一个计算发射向量和normal之间的弧度,再旋转下,其他的完全一样

:sob:调试看哪一步出问题了

result 集合内容是什么 ?? 发个 demo 出来 有空帮你研究下

NewProject.zip (1.1 MB)

跪求各位大大了。。。ver:1.9.1 这个demo里面没有其他的道具,比如要射到一个球上或者一个方块上,暂时先没加。。。不过我写的时候需要考虑到

mark

…发错了

你这就截图不是我传的demo啊

为什么要沉下去。。。