0

私は iPhone アプリケーション開発と Xcode の初心者で、パチンコ効果のある Box2D を使用して小さなゲームを開発しています。スリング ショットを使用するときに、体をそれぞれの角度に動かすのに助けが必要です。を使用してスリングショットを描きccDrawLine、その上に体を置きます。

私のプロジェクトでは、スリング ショットを使用すると、オブジェクトがランダムにさまざまな方向に移動します。これを修正する方法を知っている人はいますか?

私のコード:

パチンコを描く:

-(void)draw
{
    //NSLog(@"in dra");
    //glDisable(GL_TEXTURE_2D);
    //glDisableClientState(GL_COLOR_ARRAY);
    //glDisableClientState(GL_TEXTURE_COORD_ARRAY);

    _world->DrawDebugData();

    glEnable(GL_TEXTURE_2D);
    glEnableClientState(GL_COLOR_ARRAY);
    //glEnableClientState(GL_TEXTURE_COORD_ARRAY);

    glColor4f(0.6, 0.4, 0.2, 1.0);
    glLineWidth(4.0f);

    //glEnable(GL_LINE_SMOOTH);
    ccDrawLine( ccp(80, 75),ccp(pt1,pt2));
    ccDrawLine(ccp(pt1,pt2), ccp(240,75));
    ccDrawLine(ccp(80,75),ccp(80,0));
    ccDrawLine(ccp(240,75),ccp(240,0));    
}

オブジェクトをスリングに配置します。

-(void)addsprite2
{
    stone=[CCSprite spriteWithFile:@"rock.png"];
    stone.position=ccp(160,80);
    stone.tag=1;
    [self addChild:stone];
}

角度を手動で作成して追加しようとしています。

角度の作成:

    if (stone.position.y < 80 && stone.position.y >= 70)
    {
        ft = abs(tp2)/PTM_RATIO;
    }
     else if(stone.position.y < 70 && stone.position.y >=60)
    {
        ft = (abs(tp2)+90)/PTM_RATIO;
    }

    else if(stone.position.y < 60 && stone.position.y >= 50)
    {
        ft = (abs(tp2)+110)/PTM_RATIO;
    }

    else if(stone.position.y < 50 && stone.position.y >= 40)
    {
        ft = (abs(tp2)+140)
4

1 に答える 1

2

ベジエ カーブを使用して、2D 空間で発射曲線効果を実装できます。次に、プル距離に応じて、1 番目と 2 番目の制御点と終点を設定します。

これは、発射曲線を実装する最も簡単な方法です。

また、オブジェクトを移動するには、touchesMoved 関数を使用して、オブジェクトの位置を touchesMoved ポイントの位置と同じに設定します。

object.position = pulling.position;

これにより、指の動きに合わせてオブジェクトを移動できます。

于 2012-04-26T03:59:14.950 に答える