0

次の関数を完成させました。 update で 26 if else ブロックが含まれています。したがって、FPS の低下はほとんどありません。

動的キャストを使用して 26 オブジェクトを確認しました。形状に依存して、私はロジックをチェックしました。

これがコーディングです。

void WagonNode::update(float dt)
{
int found = 0;
for (int32 i = 0; i < kMaxContactPoints100 && found < contactPointCount100_; i++)
{
    ContactPoint100* point = contactPoints100_ + i;
    b2Fixture *otherFix = point->otherFixture;
    if( otherFix )
    {

        found++;
        b2Body *otherBody =  otherFix->GetBody();
        BodyNode *otherNode = (BodyNode*) otherBody->GetUserData();

        if (dynamic_cast<ShapeA*>(otherNode) != NULL)
        {
            tagWord(CCString::create("A"));

        }
        else if (dynamic_cast<ShapeB*>(otherNode) != NULL)
        {
             tagWord(CCString::create("B"));

        }
        else if (dynamic_cast<ShapeC*>(otherNode) != NULL)
        {
            tagWord(CCString::create("C"));
        }
        else if (dynamic_cast<ShapeD*>(otherNode) != NULL)
        {
            tagWord(CCString::create("D"));
        }
        else if (dynamic_cast<ShapeE*>(otherNode) != NULL)
        {
             tagWord(CCString::create("E"));

        }
        else if (dynamic_cast<ShapeF*>(otherNode) != NULL)
        {
            tagWord(CCString::create("F"));
        }
        else if (dynamic_cast<ShapeG*>(otherNode) != NULL)
        {
             tagWord(CCString::create("G"));
        }
        else if (dynamic_cast<ShapeH*>(otherNode) != NULL)
        {

            tagWord(CCString::create("H"));

        }
        else if (dynamic_cast<ShapeI*>(otherNode) != NULL)
        {
            tagWord(CCString::create("I"));

        }
        else if (dynamic_cast<ShapeJ*>(otherNode) != NULL)
        {
             tagWord(CCString::create("J"));

        }
        else if (dynamic_cast<ShapeK*>(otherNode) != NULL)
        {
             tagWord(CCString::create("K"));

        }
        else if (dynamic_cast<ShapeL*>(otherNode) != NULL)
        {
             tagWord(CCString::create("L"));

        }
        else if (dynamic_cast<ShapeM*>(otherNode) != NULL)
        {
            tagWord(CCString::create("M"));

        }

      etc...


    }
}

}

上記のコーディングに変更があれば、大いに役立ちます。

FPS の処理または安定化を支援してくれる人はいますか?

4

1 に答える 1