0

こんにちは、現在、プレイヤーが特にコインを集めるゲームに取り組んでいます。コインの衝突検出を実装しましたが、それは機能していますが、コインと衝突したときにコインをスコアラベルに移動したいと考えています。スコア ラベルは、画面の右上隅にあります。衝突に使用するコードを以下に示します。ゲームはスプライト ビルダーを使用して開発されているため、衝突が異なって見える場合があります。

    -(bool)ccPhysicsCollisionBegin:(CCPhysicsCollisionPair *)pair player:(CCNode *)Player coin:(CCNode *)coin
    {
       coin.physicsBody.Sensor = YES;
       NSLog(@" scoreLabel x:%f y:%f", _scoreLabel.position.x,_scoreLabel.position.y);
       id move = [CCActionMoveTo actionWithDuration:1.0f position:ccp(_scoreLabel.position.x, _scoreLabel.position.y);
       NSLog(@"coin positon x:%f y:%f", coin.position.x, coin.position.y);

       [coin runAction:move];
       return YES;
    }

_scoreLabels の位置は 177 です。正しいことを確認するために、これをログに記録しました。問題は、コインが左と下に移動しているときに、指定されたポイントに移動していないことです。助けと提案をありがとう。

4

2 に答える 2

0

位置はその親に関連付けられているため、コインの親とスコア ラベルの親が同じかどうかを確認します。それが問題かもしれません。

于 2015-03-08T22:53:41.937 に答える
0

出力するとラベルの位置がわかると言いますが、コインの位置はどうでしょうか。これは移動の前後に何を返しますか?

SpriteBuilder に移動して物理ノードをクリックし、プロパティ パネル (右上のウィンドウ) で (0,0) であることを確認します。

于 2016-04-19T21:31:48.917 に答える