关于游戏实现的一些东西

在做一个光线反射的游戏,目前查到的方法是用Box2D引擎的RayCast()方法来实现的,大致如以下代码:

for (int i = 0; i < 10; i++)
{
auto p2 = p + b2Vec2(a.x * 1000, a.y * 1000);

        RaysCastCallback callback;

        _world->RayCast(&callback, p, p2);

        g->drawSegment(Vec2(p.x*PTM_RATIO, p.y*PTM_RATIO), Vec2(callback.point.x*PTM_RATIO, callback.point.y*PTM_RATIO), 0.2f, Color4F(1, 1, 1, 1));
     
        p = callback.point;
        a = callback.normal;

        b2Vec2 remainingRay = (p2 - p);
        b2Vec2 pro = b2Dot(remainingRay, a) *  a;
        a = p2 - 2 * pro;

}
但是这样刚体的每个面都会反射……
如果要实现特定的面能反射,那应该怎么实现……
(新手)

好吧……解决了……