cocos2dx 3.16的一个bug
转载请注明出处:http://blog.csdn.net/qq_33536981/article/details/79222717
最近在弄box2d,但是却一直出错,爆炸了两天,试了各种方法,就差重装cocos了结果发现是系统bug。
在box2d中的一个叫b2Island.cpp的文件中有这样一些代码
for (int32 i = 0; i < step.positionIterations; ++i)
{
bool contactsOkay = contactSolver.SolvePositionConstraints();
bool jointsOkay = true;
for (int32 j = 0; j < m_jointCount; ++j)
{
bool jointOkay = m_joints[i]->SolvePositionConstraints(solverData);
jointsOkay = jointsOkay && jointOkay;
}
if (contactsOkay && jointsOkay)
{
// Exit early if the position errors are small.
positionSolved = true;
break;
}
}
这个m_joints的索引竟然是用的i,这个i可是表示更新次数呀 怎么会是作为数组的索引吗,所以这个下标应该是j才对。我就这样直接在源码中改了。结果我的各种关节终于回复正常了。
希望可以让大家少走些弯路,也希望官方早日修复bug!